首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rxjs,forkJoin(数组).mergeMap(.),内部mergeMap从未被调用

rxjs,forkJoin(数组).mergeMap(.),内部mergeMap从未被调用
EN

Stack Overflow用户
提问于 2018-05-09 07:28:03
回答 1查看 6.9K关注 0票数 4

在我的示例中,首先可以并行执行多个请求,在这些请求完成后,将发送另一个请求,并带有先前的结果,伪代码如下所示

代码语言:javascript
复制
let uploads$ = [obs1$, obs2$, obs3$];
Observable.forkJoin(uploads$).mergeMap(
  res => {
    // never get called if uploads$ = []
    let data = someCalculation(res);
    return this.http.post('http://endpoint/api/resource', data);
  }
).subscribe(
  res => {
  }
);

如果是uploads$ = [],内部mergeMap就不会被调用。

有人能帮忙吗?我用的是RxJS 5.4

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-10 11:06:20

它不叫b/c,在源上没有可观测到的发射。若要创建on,如果可观察值为空,则可以使用defaultIfEmptytoArray运算符。

代码语言:javascript
复制
const observables = [];
Rx.Observable.forkJoin(observables)
  .defaultIfEmpty([]) // or .toArray()
  .mergeMap(results => Rx.Observable.of(results.length))
  .subscribe(console.log);
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50247784

复制
相关文章

相似问题

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