RxJS withLatestFrom
只在主 source 发出时,附带其他流的最新值。
click$.pipe(withLatestFrom(timer$))时间线如何变化
- 1过早的 click
timer$ 尚未发出首值,因此没有输出。
- 2timer$ 更新为 1
辅助流更新不会单独触发输出。
- 3click 触发组合
主流发出时带上 timer$ 的最新值 1。
- 4timer$ 更新为 3
仍然只是保存最新值。
- 5下一次 click
输出 [click, 3]。
受支持的示例代码
实验室只根据下列示例中的关键操作符生成预设时间线,不执行任意输入代码。
import { fromEvent, interval, withLatestFrom } from 'rxjs'
const clicks$ = fromEvent(document, 'click')
const timer$ = interval(1000)
clicks$.pipe(
withLatestFrom(timer$)
).subscribe(console.log)