RxSwift 调度器与测试实战:陷阱、类型与操作指南
1. RxSwift 调度器切换的陷阱
在 RxSwift 中,切换调度器和线程看似强大,但实则存在一些陷阱。为了深入了解这些问题,我们可以通过一个示例来进行说明。首先,在水果可观察对象之后添加以下代码以生成一些动物事件:
let animalsThread = Thread() {
sleep(3)
animal.onNext("[cat]")
sleep(3)
animal.onNext("[tiger]")
sleep(3)
animal.onNext("[fox]")
sleep(3)
animal.onNext("[leopard]")
}
animalsThread.name = "Animals Thread"
animalsThread.start()
构建并运行代码后,我们可以看到新线程开始工作。接下来,如果我们想在全局线程上处理结果,可以将原有的订阅代码替换为:
animal
.dump()
.observeOn(globalScheduler)
.dumpingSubscription()
.disposed(by: bag)
再次运行代码,会发现线程切换的结果。若想在全局队列上进行观察过程,同时在主线程上处理订阅,可使用如下代码:
animal
.s
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



