【问题标题】:How to unwrap an observable inside a map in rxjs?如何在 rxjs 的地图中展开可观察对象?
【发布时间】:2020-11-03 06:37:44
【问题描述】:

我如何解开 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() => ...

【问题讨论】:

    标签: javascript rxjs


    【解决方案1】:

    未经测试

    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}}))))),
        }),
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 2022-11-25
      • 2020-08-28
      • 1970-01-01
      相关资源
      最近更新 更多