Я немного смущен тем порядком, который вы можете назвать методами 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)
Если я правильно понимаю механизмы, они разные. Первый выполняет всю работу над основным потоком, а второй выполняет всю работу над другим потоком, а затем отправляет обратно в основной поток. Но я уверен, что так может кто-то очистить это для меня, пожалуйста?