带有 rxjs 的异步管道

Async pipe with rxjs

异步管道有点问题 这是我的情况, 我需要 运行 在 html 中的异步管道中嵌套可观察对象,因为我使用推送策略并且我不想使用一些变通方法或更改检测器参考。 我的问题是,当我 运行 下面的代码时,只有第一个 observable 被调用 我应该添加 return 语句吗?或者有什么问题?

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>

您想做一个 switchMap 并且需要为用户分配一个 observable$ 属性。

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