RxJS switchMap
新 inner 到来时取消旧 inner,只保留最近一次结果。
switchMap(query => request(query))时间线如何变化
- 1查询 a
switchMap 订阅第一个请求。
- 2查询 ab 到来
旧请求 a 尚未完成,因此被取消。
- 3ab 返回
当前最新请求的结果可以输出。
- 4查询 abc
再次切换到新的 inner。
- 5abc 返回
输出永远只接收最新查询的结果。
受支持的示例代码
实验室只根据下列示例中的关键操作符生成预设时间线,不执行任意输入代码。
import { switchMap } from 'rxjs'
const result$ = query$.pipe(
switchMap(query => searchRequest(query))
)
result$.subscribe(renderResult)