首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2:序列和并行服务调用

角2:序列和并行服务调用
EN

Stack Overflow用户
提问于 2017-12-09 04:45:10
回答 1查看 1K关注 0票数 2

我遇到了一个关于序列和并行服务调用的主题。对于序列调用,我们可以使用flatmap/mergemap,对于并行调用,我们可以使用forkjoin。

以下是我的疑问

1)平面图和丝光图有什么区别?有什么特别的理由使用这两种方法。

2)如何为4-5个呼叫添加多个序列?如果我使用多个订阅,平面映射和合并有什么区别?

代码语言:javascript
复制
this.service1.getCountry(
  .mergeMap(country => this.service1.getState(country[0]))
  .subscribe(state = > state.json());
);

3)叉连接用于连接多个并行服务调用。如果我使用一个方法并在该方法中调用多个服务,而不是使用叉联接,该怎么办。使用forkJoin的任何具体原因

EN

回答 1

Stack Overflow用户

发布于 2017-12-09 06:08:51

  1. flatMap === mergeMap.flatMap只是mergeMap运算符的别名。(https://github.com/ReactiveX/rxjs/blob/master/src/add/operator/mergeMap.ts#L5-L6)有人讨论取消一个别名,但到目前为止,在v5中都是可用的。
  2. 您可能对concurrency param in mergeMap运算符(https://github.com/ReactiveX/rxjs/blob/master/spec/operators/mergeMap-spec.ts#L308-L325)感兴趣,它订阅了多个内部可观测到的内容。
  3. 这取决于使用程序。如果提供可观察到的气体发射和等待完成,forkJoin可能是可行的。但如果任何一个可观测到的完成没有排放,forkJoin将短程和完成.相反,mergeMap更倾向于将内部可观测到的发射压平到更高的可观测范围。因此,在forkJoin的情况下,您将得到每个内部可观察到的值的数组,而mergeMap将在每个内部可观测到的发射时立即发出单个值。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47725396

复制
相关文章

相似问题

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