Мне интересно, как написать мой код более элегантно... У меня есть два запроса, второй запрос должен ждать первого. Если первый терпит неудачу, все предложение должно быть неудачным, мне интересно, как поймать ошибку в одном общем месте?
enum TestError: ErrorType {
case Connection
}
private func runTest() {
rx_firstReq()
.subscribeNext() { _ in
return self.rx_secondReq()
.subscribeNext() { _ in
print("whole req sequence finished with success!")
}.addDisposableTo(self.myDisposeBag)
}.addDisposableTo(myDisposeBag)
}
func rx_firstReq() -> Observable<Bool> {
return Observable.create() { observable -> Disposable in
observable.onError(TestError.Connection) // We are assuming that first req gets failed
observable.onCompleted()
return NopDisposable.instance
}
}
func rx_secondReq() -> Observable<Bool> {
return Observable.create() { observable -> Disposable in
observable.onNext(true)
observable.onCompleted()
return NopDisposable.instance
}
}
Как видите, нет места для обработки ошибок... Я понятия не имею, как это смоделировать, в этот момент каждый следующий запрос в моей цепочке будет создавать следующий уровень отступа... на мой взгляд, это не очень хорошее использование RxSwift... ????
..небольшой намек или ссылка с примером кода с обработкой ошибки в обычном месте мне бы очень пригодилась.