【问题标题】:How can I change default scheduler used by RxJS?如何更改 RxJS 使用的默认调度程序?
【发布时间】:2017-09-06 11:35:45
【问题描述】:

据我所知,在旧版 RxJS 4 中,我可以通过猴子修补 DefaultScheduler.prototype 来更改默认调度程序。这是正确的还是有更好的方法来做到这一点?

这是否可以在较新的RxJS 5 中实现。因为正如我在源代码中看到的那样,他们使用null 作为默认调度程序,无法对其进行猴子修补。例如here

那么如何更改 RxJS 使用的默认调度程序? (用于测试、调试或只是为了好玩)

【问题讨论】:

    标签: javascript rxjs rxjs5


    【解决方案1】:

    我认为没有办法在 RxJS 5 中设置默认调度程序。

    一个原因可能是这可能会导致意外行为。例如看看Observable.range()。在 RxJS 5 中,它不使用任何调度程序,除非您专门设置了一个,请参阅 https://github.com/ReactiveX/rxjs/blob/master/src/observable/RangeObservable.ts#L89

    那么,如果您可以使用一些默认调度程序,您希望Observable.range() 的行为是什么?要始终使用此默认调度程序?那么其他需要使用异步调度的运营商呢?这些是否应该将调度程序传递给与Observable.range() 工作类似的其他操作符,这些操作符的行为可能与您的预期不同?

    【讨论】:

    • 是的,你是对的,设置默认调度程序没有意义
    猜你喜欢
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 2016-11-05
    • 1970-01-01
    相关资源
    最近更新 更多