首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJS: forkJoin mergeMap

RxJS: forkJoin mergeMap
EN

Stack Overflow用户
提问于 2018-10-05 10:29:03
回答 1查看 5.3K关注 0票数 1

我试图在一个对象中发出多个http请求并获取返回的数据。

代码语言:javascript
复制
const pagesToFetch = [2,3]
const request$ = forkJoin(
  from(pagesToFetch)
    .pipe(
      mergeMap(page => this.mockRemoteData(page)),
    )
)

mockRemoteData()返回一个简单的承诺。在第一个可观察的发射后(从pagesToFetch的第一个条目创建的请求$已经完成,第二个值不包括在内)。我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-05 10:47:29

您可以将pagesToFetch中的每个值转换为可观察的值,然后等待它们全部完成:

代码语言:javascript
复制
const observables = pagesToFetch.map(page => this.mockRemoteData(page));

forkJoin(observables)
  .subscribe(...);

或者,如果没有那么简单,并且需要pagesToFetch作为一个可以观察到的urls,那么首先可以使用以下方法:

代码语言:javascript
复制
from(pagesToFetch)
  .pipe(
    toArray(),
    mergeMap(pages => {
      const observables = pages.map(page => this.mockRemoteData(page));
      return forkJoin(observables);
    }),
  )
  .subscribe(...);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52663577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档