【发布时间】:2019-10-31 18:08:05
【问题描述】:
其实我想调用另一个以数组值作为参数的函数。我正在从一个主题中获取数组:
this.shopService.$getShops().pipe(map(
shops => {
console.log(shops[0]);
}
)).subscribe();
订阅基于此:
private newShopsSubj = new BehaviorSubject(undefined);
setShops(shops: any) {
this.newShopsSubj.next(shops);
}
$getShops(): Observable<any> {
return this.newShopsSubj.asObservable();
}
实际上代码正在运行...但是console.log 调用以undefined 结束。不知何故,我找不到合适的解决方案。
我想做这样的事情:
this.shopService.$getShops().subscribe(resp => {
this.shopService.getProductsByShopID(resp[0].id).subscribe(resp
=> {do something...};});
但它实际上失败了,因为resp[0].id 保持在undefined...
我对地图的尝试失败了。
非常感谢任何帮助...
谢谢
胡乔
【问题讨论】:
-
尝试更改第二个“resp”参数名称。相反,尝试结果......只是为了区分这两个参数。
-
不幸的是不是......异步时间是问题所在。我不明白为什么在得到主题响应之前,内部函数会以某种方式过早地被触发......
标签: angular pipe observable