繁体   English   中英

如何在 rxjs 中的地图中解开 observable?

[英]How to unwrap an observable inside a map in rxjs?

如何在以下地图中解开 observable (this.fireStore.getExtras(v["extrasId"]))

    this.authService
      .getUser()
      .pipe(
        flatMap((val) => this.fireStore.getItems(val.uid)),
        map((val) =>
          val.map((v) => ({ // this is regular array.map
            ...v,
            extras: {
              ...v["extras"],
              url: (this.fireStore.getExtras(v["extrasId"])).url // this is an observable. I want it to be unwrapped inside here itself,
            },
          }))
        )
      )

这是要展开的内部 observable (this.fireStore.getExtras(v["extrasId"])) 我试过flatMap但它正在返回函数本身..., url: flatmap() => ...

未经测试

this.authService.getUser().pipe(
    flatMap(val => this.fireStore.getItems(val.uid)),
    switchMap(val => {
      return forkJoin(val.map(v => this.fireStore.getExtras(v.extrasId).pipe(map(x => ({...v, extras: {...v.extras, url: x.url}}))))),
    }),
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM