如何更改 RxJS 使用的默认调度程序?
How can I change default scheduler used by RxJS?
据我所知在年长的RxJS 4 I could change default scheduler by monkey patching DefaultScheduler.prototype
。这是正确的还是有更好的方法?
这是否可以在较新的版本中实现 RxJS 5. Because as I have seen in the sources, they use null
as a default scheduler wich can not be monkey patched. For example here
那么如何更改 RxJS 使用的默认调度程序呢?
(用于测试、调试或只是为了好玩)
我认为没有办法在 RxJS 5 中设置默认调度程序。
一个原因可能是这可能会导致意外行为。例如看看 Observable.range()
。在 RxJS 5 中,它不使用任何调度器,除非你专门设置一个,参见 https://github.com/ReactiveX/rxjs/blob/master/src/observable/RangeObservable.ts#L89
那么,如果您可以使用一些默认调度程序,您希望 Observable.range()
有什么行为?要始终使用此默认调度程序?其他需要使用一些异步调度的操作符呢?这些是否应该将调度程序传递给与 Observable.range()
工作方式类似的其他运算符,而这些运算符的行为可能与您预期的不同?
据我所知在年长的RxJS 4 I could change default scheduler by monkey patching DefaultScheduler.prototype
。这是正确的还是有更好的方法?
这是否可以在较新的版本中实现 RxJS 5. Because as I have seen in the sources, they use null
as a default scheduler wich can not be monkey patched. For example here
那么如何更改 RxJS 使用的默认调度程序呢? (用于测试、调试或只是为了好玩)
我认为没有办法在 RxJS 5 中设置默认调度程序。
一个原因可能是这可能会导致意外行为。例如看看 Observable.range()
。在 RxJS 5 中,它不使用任何调度器,除非你专门设置一个,参见 https://github.com/ReactiveX/rxjs/blob/master/src/observable/RangeObservable.ts#L89
那么,如果您可以使用一些默认调度程序,您希望 Observable.range()
有什么行为?要始终使用此默认调度程序?其他需要使用一些异步调度的操作符呢?这些是否应该将调度程序传递给与 Observable.range()
工作方式类似的其他运算符,而这些运算符的行为可能与您预期的不同?