Observable을 생성할 때 자주 사용하는 메서드에 대해서 알아보자!

just

<aside> 💡 단 1개의 항목(item)만 방출하는 Observable Sequence를 생성

</aside>

아래 코드를 보면서 이해해보자!

let observable = Observable.just(1)

or

let observable = Observable<Int>.just(1)

위처럼 observable을 생성할 때 Observable이란 클래스의 just라는 메서드를 사용할 수 있는데,

이때 just는 단 한개의 항목(위에서는 Int형 타입의 1)만 파라미터로 넘겨줄 수 있음

위에서 생성한 observable을 구독할 경우, 어떻게 되냐면

observable.subscribe(onNext: { (data) in
    print(data)
},
onCompleted: {
    print("onComplete")
},
onDisposed: {
    print("onDispose")
})

// 1
// onComplete
// onDispose

아까 파라미터로 넘겨준 1 이라는 항목을 한번 방출하고, 바로 complete불려서 dispose되어버리는 것을 볼 수 있음!

참고로 item이 방출되는 시점은 Observable을 구독하자마자임!

just는 진짜 1개의 항목만 방출하고 dispose되어버리기 때문에, 배열을 넣을 경우 해당 배열 자체를 방출하고 Dispose 되어버림!

let observable = Observable.just([1, 2])
observable.subscribe(onNext: { (data) in
    print(data)
},
onCompleted: {
    print("onComplete")
},
onDisposed: {
    print("onDispose")
})

// [1, 2]
// onComplete
// onDispose

당연히 여러개를 넣으려고 하면 에러가 발생하겠지?