옵저버블한 객채가 방출하는 이벤트를 수신받아 원하는 로직을 처리하는 코드를

subscribe라고 하는듯 하다.

example(of: "SUBSCRIBE") {
    let observable = Observable.of(1,2,3)
    
    //구독
    observable.subscribe{
        print($0)
    }
}

/*
출력
--- Example of:SUBSCRIBE---
next(1)
next(2)
next(3)
completed
*/

1. Empty

Complete만 방출하는 Observable 이다.

example(of: "empty") {
    let observable = Observable<Void>.empty()
    observable.subscribe(
        onNext:{print($0)},
        onCompleted:{print("COMPLETED")}
    )

}

/*
--- Example of:empty---
completed
*/

2. Never

구독시 completed도 출력되지 않는 이벤트이다.

example(of: "NEVER") {
    Observable<Void>.never()
        .subscribe{
            print($0)
        }
}
/*
출력
--- Example of:NEVER---
*/

3. Range

example(of: "RANGE") {
    Observable<Int>.range(start: 1, count: 10).subscribe{
        print($0)
    }
}
/*
--- Example of:RANGE---
next(1)
next(2)
next(3)
next(4)
next(5)
next(6)
next(7)
next(8)
next(9)
next(10)
completed
*/

rage에 설정된 값만큼의 이벤트를 방출하고 completed되는는 Observable 생성

Dispose

Subscribe가 Observable안에 있는 이벤트를 emit하는 것이라면, disposing은 subscribe를 취소하는것이다.

Dispose가 필요한 경우

Error 가 발생하는 경우 Completed는 발생하지 않는다.