inspectOn 的上下文中使用RxSwift的 MainSchedule.instance MainSchedule.asyncInstance 有什么区别?

最佳答案

asyncInstance保证事件的异步传递,而instance如果已经在主线程中,则可以同步传递事件。

至于为什么在主线程上时就需要强制异步传递:这种情况很少见,我通常会尝试避免它,但是有时您有一个递归的响应式(Reactive)管道,其中一个事件触发了新线程的传递同一管道中的事件。如果这是同步发生的,则会中断Rx契约(Contract),RxSwift将发出警告,警告您尝试在第一个事件完成之前传递第二个事件。在这种情况下,您可以观察MainScheduler.asyncInstance来打破循环。

10-07 20:57