反应式编程 – .subscribe和.drive之间的区别是什么
我是反应式编程的新手,这是我正在尝试的
.驾驶 searchController.rx.text .asDriver() .drive(onNext: { (element) in print(element) }).disposed(by: disposeBag) .订阅 searchController.rx.text .asObservable() .subscribe(onNext: { (element) in print(element) }).disposed(by: disposeBag) 两个块的工作方式完全相同,使用.drive over .subscribe的目的是什么?在哪种情况下我们应该使用.drive over .subscribe? 任何帮助将不胜感激
驱动程序与Observable略有不同.来自文档:
我假设searchController.rx.text永远不会失败,在这种情况下不需要共享. 所以我们只有一点让你的情况与众不同:
你可以自己检查一下.在订阅之前插入此内容并且您的事件将不会在主线程上传递: .observeOn(ConcurrentDispatchQueueScheduler(qos: .background)) 这就是我在我的代码中检查它的方式: something .asObservable() .observeOn(ConcurrentDispatchQueueScheduler(qos: .background)) .subscribe(onNext: { _ in print("observable is on main thread: ",Thread.isMainThread) }) something .asDriver() .drive(onNext: { _ in print("driver is on main thread: ",Thread.isMainThread) }) 日志:
在哪种情况下我们应该使用.drive: 使用UI时.为什么?来自文档:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |