使用rxjs的异步管道

时间:2019-12-22 21:47:08

标签: angular typescript rxjs observable async-pipe

我在异步管道中有一个小问题 这是我的情况, 我需要在html的异步管道中运行嵌套的observables,因为我使用了推策略,并且我不想使用某些解决方法或更改检测器引用。 我的问题是,当我在下面运行代码时,仅第一个可观察到的被调用 我应该添加返回语句吗?还是什么问题?

Ts代码

this.http.getUsers(criteria)
.pipe(map(data=>{
data.users.map(user=>{
this.http.getUserData(user.id)
.pipe(map(res=>{user.data=res.data}))}}

HTML代码

<div *ngFor=let user of users$ | async> </div>

1 个答案:

答案 0 :(得分:0)

您要创建一个switchMap,并且需要将一个可观察对象分配给users $属性。

users$ = this.http.getUsers(criteria).pipe(
  switchMap(user => this.http.getUserData(user.id)),
  map(res => res.data)
);