There are variants of the window operator that allow you to split RxJS observables in different ways. In this lesson we will explore the windowToggle variant and see one of its use cases in user interfaces. Let's say we want to build a new functionality, it only receive the source when mousedown and stop receiving data when mouse up. To do that we can use 'windowToggle':[RxJS] Split an RxJS observable conditionally with windowToggle
const clockObs = Rx.Observable.interval(1000);
const downObs = Rx.Observable.fromEvent(document, 'mousedown');
const upObs = Rx.Observable.fromEvent(document, 'mouseup');
const source = clockObs
.windowToggle(downObs, () => upObs)
.switch()
.subscribe(console.log);
/*
--0--1--2--3--4--5--6--7--8--9--
windowToggle
----------D--------U-------------
\
-3--4--5-|
switch / mergeAll
-----------3--4--5---------------
*/
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。