【发布时间】:2021-01-26 04:49:04
【问题描述】:
我需要一些帮助来重构我对异步管道的方法和服务调用。
这是我的组件和服务中的内容
///// component /////
bands: Iband[];
getbands() {
this.membersService.getbandsForMember(this.member.id).subscribe(response => {
this.bands = response;
}, error => {
console.log(error);
});
}
///// service /////
getbandsForMember(id: number) {
return this.http.get<Iband[]>(this.baseUrl + 'members/' + id + '/memberbands');
}
这是我遇到的一些麻烦。 除了服务,我觉得我说得对,不知道怎么修改。
///// component /////
bands$: Observable<Iband[]> ;
getbands() {
this.membersService.getbandsForMember(this.member.id).subscribe(response => {
this.bands$ = response;
}, error => {
console.log(error);
});
}
///// service /////
getbandsForMember(id: number) {
return this.http.get<Iband[]>(this.baseUrl + 'members/' + id + '/memberbands').pipe(
map((bands: Iband[]) => {
return bands;
})
);
}
【问题讨论】:
-
map(bands => bands)是无操作的。而且您正在将解析的值分配给属性,而不是可观察的 - 大概您遇到了类型错误(尽管minimal reproducible example 会澄清)。你只想要this.bands$ = this. membersService.getbandsForMember(this.member.id)吗? -
所以删除地图()?我将方法的返回值分配给 this.bands$ 并且我没有错误。我还需要删除 map() 吗?
标签: angular typescript asynchronous observable