Development/RxSwift

RxSwift) AsyncSubject 란?

Tunko 2022. 5. 30. 16:13

AsyncSubject 는 이벤트가 전달되는 시점이 다릅니다. 구독한 시점에 이벤트가 전달되는것이 아닌 Complite 이벤트가 전달되면 가장 마지막 이벤트가 전달됩니다.

let disposeBag = DisposeBag()

enum MyError: Error {
   case error
}

let subject = AsyncSubject<Int>()
subject
    .subscribe { print($0) }
    .disposed(by: disposeBag)

subject.onNext(1)
subject.onNext(2)
subject.onNext(3)

subject.onCompleted()
//subject.onError(MyError.error)

출력

next(3)
completed

만약 onCompleted가 아닌 onError이벤트가 전달되면 error 만 전달됩니다.

반응형