[RxSwift] Empty / Never / Throw

2024. 12. 20. 17:55·iOS/RxSwift
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
'iOS/RxSwift' 카테고리의 다른 글
  • [RxSwift] 1. Observables aka Sequences
  • [RxSwift] From / Just / Of / Repeat / Interval / Timer / Range
  • [RxSwift] Create / Defer
  • [RxSwift] Map / FlatMap
kimsangjunzzang
kimsangjunzzang
루피 님의 블로그 입니다.
  • kimsangjunzzang
    루피 님의 블로그
    kimsangjunzzang
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • iOS (55)
        • Swift (26)
        • UIKit (9)
        • SwiftUI (8)
        • RxSwift (12)
      • FE (8)
        • 모던 자바스크립트 (3)
        • HTML (5)
      • Operating System (1)
      • 트러블 슈팅 (4)
      • 바로 안 나오면 모르는거다 (4)
      • Algorithm (16)
      • 회고록 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ViewController
    회고록
    면접
    JavaScript
    Algorithm
    알고리즘
    arc
    ios
    FP
    디자인 패턴
    백준
    CS
    오블완
    AppleDeveloperAcademy
    HTML
    티스토리챌린지
    boj
    rxswift
    C++
    swift
    closure
    SwiftUI
    web
    uikit
    gcd
    Delegate
    life cycle
    주니어 개발자
    DispatchQueue
    state
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
kimsangjunzzang
[RxSwift] Empty / Never / Throw
상단으로

티스토리툴바