需要帮助重构到Angular中的异步管道吗
我需要一些帮助来重构异步管道的方法和服务调用 下面是我的组件和服务中的内容需要帮助重构到Angular中的异步管道吗,angular,typescript,asynchronous,observable,Angular,Typescript,Asynchronous,Observable,我需要一些帮助来重构异步管道的方法和服务调用 下面是我的组件和服务中的内容 ///component// 乐队:Iband[]; getbands(){ this.membersService.getBandsFormber(this.member.id).subscribe(响应=>{ 这意味着反应; },错误=>{ console.log(错误); }); } /////服务// getbandsForMember(id:编号){ 返回this.http.get(this.baseUrl+'
///component//
乐队:Iband[];
getbands(){
this.membersService.getBandsFormber(this.member.id).subscribe(响应=>{
这意味着反应;
},错误=>{
console.log(错误);
});
}
/////服务//
getbandsForMember(id:编号){
返回this.http.get(this.baseUrl+'members/'+id+'/memberbands');
}
这就是我遇到的一点小麻烦。
我想我是对的,除了服务,不知道如何修改它
///component/////
波段$:可见;
getbands(){
this.membersService.getBandsFormber(this.member.id).subscribe(响应=>{
这个.bands$=响应;
},错误=>{
console.log(错误);
});
}
/////服务//
getbandsForMember(id:编号){
返回此.http.get(this.baseUrl+'members/'+id+'/memberbands').pipe(
地图((波段:Iband[])=>{
返回带;
})
);
}
map
操作符用于转换可观察对象发出的值。如果不转换响应,则不需要
async
管道应与可观察管道一起使用。您将类型定义为bands$:Observable
是正确的。但不需要订阅。async
管道将订阅可观测数据
getbandsForMember(id:number):可观察{
返回this.http.get(this.baseUrl+'members/'+id+'/memberbands');
}
组成部分
bands$:可观察到;
getbands(){
this.band$=this.membersService.getBandsFormber(this.member.id);
}
模板
{{bands | json}}
更新:在组件中设置成员变量
当在模板中触发异步
管道时,您可以在组件中使用点击
或映射
操作符来执行一些副作用。如果传入的数据不需要转换,请使用点击
,如果不需要转换,请使用映射
控制器
bands$:可观察到;
getbands(){
this.band$=this.membersService.GetBandsFormber(this.member.id).pipe(
点击(响应=>{
log('get bands in component:',response);
this.skip=true;//
{{bands | json}}
map(bands=>bands)
是不可操作的。您正在将解析的值分配给属性,而不是可观察的-可能您得到了一个类型错误(尽管a会澄清)。您是否只想this.bands$=this.membersService.getBandsFormber(this.member.id)
?因此删除map()?我将方法返回的值分配给了这个。bands$,我没有错误。我还需要删除map()吗?嗨,Michael。快速提问-如果我想在getbandsForMember()之后做一点逻辑(设置1或2个其他组件变量)返回数据,我会在调用服务方法后立即将其放入吗?我询问的原因是,此调用不是异步的。我想等待服务返回,那么在返回数据后如何执行?例如,在我的个人资料页面上,我获取评论,在评论进入后,通过用户单击,我想更新“跳过”值e、 这样下次我就不会收到同样的评论了。@user1186050:你可以在组件中使用点击操作符来做一些效果。我已经更新了答案。看看它是否适合你。嗨,我仍然有一些问题,并在这里发布了一个新的帖子:@user1186050:从现在删除的答案中,我假设你已经用解决了这个问题(审查$|异步)?。长度
?