Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rxjs运算符开关映射_Javascript_Rxjs - Fatal编程技术网

Javascript Rxjs运算符开关映射

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

我是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 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
将放弃(取消订阅)以前发出的可观测值,一旦新的可观测值到达。因此,最终您的值会延迟足够长的时间,以便计时器发出一个新值,为您的
开关映射
创建一个新的可观测值,以便在检索其值之前订阅放弃上一个开关映射。

开关映射
将在新的开关映射到达后放弃(取消订阅)先前发出的可观测值。因此,最终您的值会延迟足够长的时间,以便计时器发出一个新的值,为您的
开关映射创建一个新的可观察值,以便在检索其值之前订阅放弃前一个值。

那么您不明白什么?你期望什么样的输出?那么你不明白什么?您期望的产量是多少?非常感谢。我很喜欢汉克斯。我懂了