RxJS concatMap
前一个 inner 完成后才订阅下一个,严格保持顺序。
concatMap(value => request(value))时间线如何变化
- 1开始请求 A
B、C 虽已到达,但先进入队列。
- 2A 完成
现在才订阅 B 对应的 inner Observable。
- 3B 完成
继续处理排队的 C。
- 4C 完成
输出顺序稳定为 A、B、C。
受支持的示例代码
实验室只根据下列示例中的关键操作符生成预设时间线,不执行任意输入代码。
import { from, concatMap } from 'rxjs'
const saved$ = from(['A', 'B', 'C']).pipe(
concatMap(value => saveRequest(value))
)
saved$.subscribe(renderSaved)