Rxjs - Operators - Switch

前身

这个就是以前的flatMapLatest
补充一下 – 使用switch的前提是本身的流里每个元素都已经变成了流,而且这家伙没参数,不能更具体的控制

包含每一个元素就是一个流

switch的特点就是当一个内部元素(流)发出后,下一次元素(流)发出时,前面的内部元素就被取消订阅

想象下:
根据客户服务器的API来取数据
客户每次改API就是一个内部流

分解:
客户第一次改 -> 我们改代码 -> 我们改完之前,客户又改了api -> 我们放弃没改完的第一次修改,根绝第二次修改的api写代码
意思就是新的来了,我们就不要旧的了

var clicks = Rx.Observable.fromEvent(document, 'click');
// Each click event is mapped to an Observable that ticks every second
var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000));
var switched = higherOrder.switch();
// The outcome is that `switched` is essentially a timer that restarts
// on every click. The interval Observables from older clicks do not merge
// with the current interval Observable.
switched.subscribe(x => console.log(x));