【发布时间】:2016-10-24 17:09:37
【问题描述】:
我对在 observables 上调用 subscribeOn 和 observeOn 方法的顺序有点困惑。我读了几篇文章,一个人说没关系,只是在他的例子中使用了东西,而其他人说这很重要。所以这是我的问题:
例如:
self.remoteService.rxGetAllLanguages()
.observeOn(MainScheduler.instance)
.subscribeOn(ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Background))
.subscribe({ e in
switch e {
case .Next(let element):
case .Error(let e):
DDLogError("Error in \(e)")
case .Completed:
DDLogDebug("Completed")
}
}
).addDisposableTo(self.disposeBag)
是否和以下一样:
self.remoteService.rxGetAllLanguages()
.subscribeOn(ConcurrentDispatchQueueScheduler(globalConcurrentQueueQOS: .Background))
.observeOn(MainScheduler.instance)
.subscribe({ e in
switch e {
case .Next(let element):
case .Error(let e):
DDLogError("Error in \(e)")
case .Completed:
DDLogDebug("Completed")
}
}
).addDisposableTo(self.disposeBag)
如果我正确理解它们的机制,它们是不同的。第一个在主线程上完成所有工作,第二个在另一个线程上完成所有工作,然后分派回主线程。但我很确定,所以有人可以帮我解决这个问题吗?
【问题讨论】:
标签: swift multithreading rx-swift