据我所知,在较早的RxJS 4中,我可以通过猴子修补DefaultScheduler.prototype
来更改默认调度程序。这是正确的还是有更好的方法来做到这一点?
这是否可以在较新的RxJS 5中实现。因为正如我在消息来源中看到的那样,他们使用null
作为默认调度程序,不能进行猴子修补。例如here
那么如何更改RxJS使用的默认调度程序呢? (用于测试,调试或仅仅是为了好玩)
答案 0 :(得分:2)
我认为没有办法在RxJS 5中设置默认的调度程序。
一个原因可能是这可能导致意外行为。例如,看看Observable.range()
。在RxJS 5中,除非您专门设置调度程序,否则它不使用任何调度程序,请参阅https://github.com/ReactiveX/rxjs/blob/master/src/observable/RangeObservable.ts#L89
因此,如果您可以使用某些默认调度程序,您期望从Observable.range()
获得哪些行为?要始终使用此默认调度程序?那些需要使用异步调度的其他运营商呢?它们是否应该将调度程序传递给与Observable.range()
类似的其他运算符,这些运算符的行为可能与您预期的不同?