RxJS mergeMap
同时订阅多个 inner,完成顺序由各自耗时决定。
mergeMap(value => request(value))时间线如何变化
- 1订阅 slow
第一个 inner 开始执行。
- 2并发订阅 fast
无需等待 slow 完成。
- 3fast 最先返回
mergeMap 按完成时间输出。
- 4mid 第二个返回
多个 inner 可以同时活跃。
- 5slow 最后返回
输出顺序可能与 source 顺序不同。
受支持的示例代码
实验室只根据下列示例中的关键操作符生成预设时间线,不执行任意输入代码。
import { from, mergeMap } from 'rxjs'
const loaded$ = from(['slow', 'fast', 'mid']).pipe(
mergeMap(key => loadRequest(key))
)
loaded$.subscribe(renderResult)