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