Open varHarrie opened 6 years ago
combineLatest(...obserables: Observable[], project: (...values: any[]) => any)
Observable
最新值
project()
const source = Rx.Observalbe.interval(500).take(3) const newest = Rx.Observable.interval(300).take(6) const example = source.combineLatest(newest, (x, y) => x + y) example.subscribe((value) => console.log(value))
source : ----0----1----2| newest : --0--1--2--3--4--5| combineLatest(newest, (x, y) => x + y) example: ----01--23-4--(56)--7|
zip(...obserables: Observable[], project: (...values: any[]) => any)
第i个值
cache
const source = Rx.Observalbe.interval(500).take(3) const newest = Rx.Observable.interval(300).take(6) const example = source.zip(newest, (x, y) => x + y) example.subscribe((value) => console.log(value))
source : ----0----1----2| newest : --0--1--2--3--4--5| zip(newest, (x, y) => x + y) example: ----0----2----4|
withLatestFrom(...obserables: Observable[], project: (...values: any[]) => any)
源Obsrvable
const source = Rx.Observalbe.interval(500).take(3) const newest = Rx.Observable.interval(300).take(6) const example = source.withLatestFrom(newest, (x, y) => x + y) example.subscribe((value) => console.log(value))
source : ----0----1----2| newest : --0--1--2--3--4--5| withLatestFrom(newest, (x, y) => x + y) example: ----0----3----6|
RxJS Operators 详解 30 天精通 RxJS
Combination Operators
目录
combineLatest
Observable
都送出第一个值时,开始送出Observable
送出时,继续送出Observable
的最新值
,传入project()
,最终推送值为project()
返回值zip
Observable
都送出第一个值时,开始送出Observable
都送出第i个值时,继续送出Observable
的第i个值
,传入project()
,最终推送值为project()
返回值Observable
之间的推送时间差距太大,中间会cache
大量的值withLatestFrom
Observable
都送出第一个值时,开始送出源Obsrvable
送出值时,继续送出Observable
的最新值
,传入project()
,最终推送值为project()
返回值参考资料
RxJS Operators 详解 30 天精通 RxJS