Angular 带迭代的角度嵌套API调用
有没有更好的方法来实现这一点(让所有用户都拥有他们的照片):Angular 带迭代的角度嵌套API调用,angular,ionic-framework,rxjs,Angular,Ionic Framework,Rxjs,有没有更好的方法来实现这一点(让所有用户都拥有他们的照片): this.authHttp.get(this.apirl+'users')) .map(res=>res.json()) .订阅(用户=>{ for(让用户对用户){ this.authHttp.get(this.apirl+'users/'+user.id+'/photos') .map(res=>res.json()) .订阅(照片=>{ 用户['photos']=照片; 此.items.push(用户); }) } }); 也
this.authHttp.get(this.apirl+'users'))
.map(res=>res.json())
.订阅(用户=>{
for(让用户对用户){
this.authHttp.get(this.apirl+'users/'+user.id+'/photos')
.map(res=>res.json())
.订阅(照片=>{
用户['photos']=照片;
此.items.push(用户);
})
}
});
也许使用合并地图
谢谢你的建议
Julien我假设
res.json()
是一个同步调用,将json作为对象返回,以便您可以在其上进行链接:
this.authHttp.get(this.ApiUrl+'users')
.mergeMap(res = res.json().users)
.mergeMap(
user => this.authHttp.get(this.ApiUrl+'users/'+user.id+'/photos'),
(user, photosRes) => {
user['photos'] = photosRes.json();
return user;
}
)
.subscribe(user => this.items.push(user));
此代码示例使用了
mergeMap
重载,该重载使用mapFunc(外部、内部)
,因此您可以访问这两个函数,并可以根据需要将它们合并在一起。是的,mergeMap
是一个好主意。谢谢,问题是我找不到如何使用mergeMap迭代用户。您面临的问题是什么?