gpt4 book ai didi

javascript - 为什么 Infinity 传递给 interval 在 Rx.js 中不会永远等待?

转载 作者:行者123 更新时间:2023-11-30 16:40:24 24 4
gpt4 key购买 nike

有人能解释一下为什么下面的代码片段会立即输出数字 0 到 6 吗?

 Rx.Observable.interval(1/0).take(6).forEach(x => console.log(x));

Output: 0 1 2 3 4 5

最佳答案

the source code of RxJS可以看出Observable.interval 期望(并使用)其作为整数的输入:

module Rx {
export interface ObservableStatic {
/**
* Returns an observable sequence that produces a value after each period.
*
* @example
* 1 - res = Rx.Observable.interval(1000);
* 2 - res = Rx.Observable.interval(1000, Rx.Scheduler.timeout);
*
* @param {Number} period Period for producing the values in the resulting sequence (specified as an integer denoting milliseconds).
* @param {Scheduler} [scheduler] Scheduler to run the timer on. If not specified, Rx.Scheduler.timeout is used.
* @returns {Observable} An observable sequence that produces a value after each period.
*/
interval(period: number, scheduler?: IScheduler): Observable<number>;
}
}

自从在 Javascript 中

(1/0) === Infinity

Infinity 变成整数时为零:

(Infinity | 0) === 0

关于javascript - 为什么 Infinity 传递给 interval 在 Rx.js 中不会永远等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32104381/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com