我想知道如何以更优雅的方式编写我的代码......我有两个请求,第二个请求必须等待第一个请求。如果第一个失败了整个句子应该失败,我想知道如何在一个常见的地方捕获错误?
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
}
}
如您所见,没有任何地方可以进行错误处理...我不知道如何对其建模,此时链中的每个下一个请求都会创建下一个缩进级别...在我看来,这不是很好的使用迅捷...
..一些提示或与示例代码的链接在常见的地方处理错误对我来说非常有用。