RxSwift -- MainScheduler.instance 对比 MainScheduler.asyncInstance

RxSwift -- MainScheduler.instance vs MainScheduler.asyncInstance

在 [=14] 的上下文中使用 RxSwift 的 MainSchedule.instanceMainSchedule.asyncInstance 有什么区别=]观察?

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

至于当你已经在主线程上时,为什么你需要强制异步交付:这种情况很少见,我通常会尽量避免它,但有时你有一个递归反应管道,其中一个事件触发在同一管道中传递新事件。如果这是同步发生的,它会破坏 Rx 契约,RxSwift 会发出警告,提示您在第一个事件完成之前尝试传递第二个事件。在这种情况下,您可以在 MainScheduler.asyncInstance 上观察以打破循环。