옵저버블한 객채가 방출하는 이벤트를 수신받아 원하는 로직을 처리하는 코드를
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
*/
Complete만 방출하는 Observable 이다.
example(of: "empty") {
let observable = Observable<Void>.empty()
observable.subscribe(
onNext:{print($0)},
onCompleted:{print("COMPLETED")}
)
}
/*
--- Example of:empty---
completed
*/
구독시 completed도 출력되지 않는 이벤트이다.
example(of: "NEVER") {
Observable<Void>.never()
.subscribe{
print($0)
}
}
/*
출력
--- Example of:NEVER---
*/
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 생성
Subscribe가 Observable안에 있는 이벤트를 emit하는 것이라면, disposing은 subscribe를 취소하는것이다.
Dispose가 필요한 경우
Error 가 발생하는 경우 Completed는 발생하지 않는다.