1

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

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>

4

1 回答 1

2

你想做一个 switchMap,你需要为 users$ 属性分配一个 observable。

users$ = this.http.getUsers(criteria).pipe(
  switchMap(user => this.http.getUserData(user.id)),
  map(res => res.data)
);
于 2019-12-22T21:56:10.583 回答