實驗
創(chuàng)建一個Observable信號,發(fā)送next和error信號
let observer = Observable<Any>.create { (observer) -> Disposable in
observer.onNext("next")
observer.onError(LJError.faild)
//observer.onCompleted()
return Disposables.create()
}
轉(zhuǎn)換成Driver并訂閱
observer.asDriver(onErrorJustReturn: "driver error")
.drive(onNext: { (next) in
print("driver onNext: \(next)")
}, onCompleted: {
print("driver onCompleted")
}, onDisposed: {
print("driver onDisposed")
})
.disposed(by: disposed)
// output:
driver onNext: next
driver onNext: driver error
driver onCompleted
driver onDisposed
發(fā)送next和completed信號侈玄,查看輸出
// output:
driver onNext: next
driver onCompleted
driver onDisposed
只發(fā)送 next信號
driver onNext: next
結(jié)論
我們可以發(fā)現(xiàn):
-
observer.onNext()
可以觸發(fā)drive(onNext: {})
-
observer.onError()
也可觸發(fā)drive(onNext: {})
, 但是返回的不是error信息,是onErrorJustReturn
的值 -
observer.onError()
和observer.onCompleted()
都會觸發(fā).drive(onCompleted:{})