RxSwift-Observable asDriver 이후 이벤트 구독 관계

1413 단어

실험


Observable 신호를 만들고next와 error 신호를 보냅니다.
let observer = Observable.create { (observer) -> Disposable in
                  observer.onNext("next")
                  observer.onError(LJError.faild)
                  //observer.onCompleted()

                  return Disposables.create()
                }

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

next와completed 신호를 보내고 출력을 보기
// output:
driver onNext: next
driver onCompleted
driver onDisposed

next 신호만 보내기
driver onNext: next

결론


우리는 다음과 같은 것을 발견할 수 있다.
  • observer.onNext() 촉발 가능drive(onNext: {})
  • observer.onError()도 촉발할 수 있지만 error 정보가 아니라 drive(onNext: {})의 값
  • 으로 되돌아옵니다.
  • onErrorJustReturnobserver.onError() 모두 촉발observer.onCompleted()
  • 좋은 웹페이지 즐겨찾기