728x90
반응형
안녕하세요, iOS 개발하는 루피입니다.
오늘은 공식문서를 바탕으로 Empty, Never, Throw Operator에 대해 공부해보려고합니다. 그러면 시작해볼까요?
Empty, Never, Throw 연산자는 매우 특정하고 제한된 동작을 가진 Observable을 생성합니다.이러한 연산자들은 주로 테스트 목적으로 유용하며, 다른 Observable과 조합하거나 다른 Observable을 파라미터로 기대하는 연산자에 파라미터로 사용될 때도 활용됩니다.
Empty : 아이템을 방출하지 않지만, 일반적으로 종료되는 Observable를 만듭니다.

예를 들어 코드로 보면 …
// DisposeBag 생성
let disposeBag = DisposeBag()
// Empty Observable 생성
let emptyObservable = Observable<Int>.empty()
emptyObservable.subscribe(
onNext: { value in
print("Empty - Received value: \(value)")
},
onCompleted: {
print("Empty - Completed")
}
).disposed(by: disposeBag)
// Empty - Completed
Never : 아이템을 방출하지도 않고 종료 되지도 않는 Observable를 만듭니다.

예를 들어 코드로 보면 …
// DisposeBag 생성
let disposeBag = DisposeBag()
// Never Observable 생성
let neverObservable = Observable<Int>.never()
neverObservable.subscribe(
onNext: { value in
print("Never - Received value: \(value)")
},
onCompleted: {
print("Never - Completed")
}
).disposed(by: disposeBag)
Throw : 아이템을 방출하지 않고 에러와 함께 종료되는 Observable를 만듭니다.

예를 들어 코드로 보면 …
// DisposeBag 생성
let disposeBag = DisposeBag()
// Throw Observable 생성
enum MyError: Error {
case testError
}
let throwObservable = Observable<Int>.error(MyError.testError)
throwObservable.subscribe(
onNext: { value in
print("Throw - Received value: \(value)")
},
onError: { error in
print("Throw - Received error: \(error)")
},
onCompleted: {
print("Throw - Completed")
}
).disposed(by: disposeBag)
// Throw - Received error: testError
이처럼 공부한 내용들을 정리해보았습니다. 피드백은 언제든지 환영입니다!!!
728x90
반응형
'iOS > RxSwift' 카테고리의 다른 글
[RxSwift] 1. Observables aka Sequences (0) | 2024.12.20 |
---|---|
[RxSwift] From / Just / Of / Repeat / Interval / Timer / Range (0) | 2024.12.20 |
[RxSwift] Create / Defer (0) | 2024.12.20 |
[RxSwift] Map / FlatMap (0) | 2024.12.20 |
[RxSwift] Subject (0) | 2024.12.20 |