상세 컨텐츠

본문 제목

[RxSwift] Observable 생성자 (create, just)

Swift

by Mr.Garlic 2022. 9. 5. 15:48

본문

카테고리 별 연산자

Observable의 연산자는 너무 다양하기 때문에, 자주 쓰고 많이 보이는 연산자들 위주로 따로 정리해보려한다.
연산자 전체를 보려면 여기를 클릭하면 된다.

Observable 생성자

create

직접 코드를 구현해서 옵저버 메서드를 호출하여 Observable을 구현한다.
중요한 점은 create는 Disposable Protocol을 return 해야한다는 점이다!

// 직접 구독상태에서 어떤 이벤트를 방출할 지 구현할 수 있다. 
let source = Observable.create { observer in
  for i in 1...5 {
    observer.on(.Next(i))
  }

// onCompleted 실행시켜주면 자동으로 dispose 된다. 
  observer.on(.Completed)

  // Observable 타입은 Disposable을 리턴하도록 되어있다.
  return AnonymousDisposable {
    print("Disposed")
  }
}

source.subscribe {
  print($0)
}

실행시키면 아래와 같은 결과가 출력될 것이다.

Next(1)
Next(2)
Next(3)
Next(4)
Next(5)
Completed
disposed

Just

마찬가지로 옵저버블을 생성해 주는 연산자인 just는 기본적으로 튜플이나 배열을 방출하도록 사용한다.

let source = Observable.just(1, 2, 3)

source.subscribe {
    print($0)
}

let source2 = Observable.just([1,2,3])

source2.subscribe {
    print($0)
}

아래와 같은 결과가 출력된다.

next((1, 2, 3))
completed
next([1, 2, 3])
completed

관련글 더보기