Javascript Rxjs运算符开关映射
我是Rxjs新手,为了更好地理解,我写了一些例子。然而,下面的例子让我困惑,为什么输出是0和1?有人能解释一下吗Javascript Rxjs运算符开关映射,javascript,rxjs,Javascript,Rxjs,我是Rxjs新手,为了更好地理解,我写了一些例子。然而,下面的例子让我困惑,为什么输出是0和1?有人能解释一下吗 var sources = Rx.Observable.timer(1000,1000); var higherOrder = sources.switchMap(val => Rx.Observable.of(val).delay(1000*val)); higherOrder.subscribe(x => console.log(x)); 此外: var sourc
var sources = Rx.Observable.timer(1000,1000);
var higherOrder = sources.switchMap(val => Rx.Observable.of(val).delay(1000*val));
higherOrder.subscribe(x => console.log(x));
此外:
var sources = Rx.Observable.timer(1000,1000);
var higherOrder = sources.switchMap(val => Rx.Observable.of(val));
higherOrder.subscribe(x => console.log(x));
输出为:0 1 2 3 4 5…
switchMap
将放弃(取消订阅)以前发出的可观测值,一旦新的可观测值到达。因此,最终您的值会延迟足够长的时间,以便计时器发出一个新值,为您的开关映射
创建一个新的可观测值,以便在检索其值之前订阅放弃上一个开关映射。开关映射
将在新的开关映射到达后放弃(取消订阅)先前发出的可观测值。因此,最终您的值会延迟足够长的时间,以便计时器发出一个新的值,为您的开关映射创建一个新的可观察值,以便在检索其值之前订阅放弃前一个值。那么您不明白什么?你期望什么样的输出?那么你不明白什么?您期望的产量是多少?非常感谢。我很喜欢汉克斯。我懂了