Observable은 여러 값의 지연푸시 모음이다.
자바스크립트에서 하나의 item과 여러개의 item을 처리하는 2가지 방법
(Async, sync)이 있습니다. Async는 비동기 방식
으로 흔이 알고 있는 setTimeout, xhr, event
등이 있습니다. async한 상황에서 우리가 처리하던 방식은 callback
또는 주로 사용하던 promise
가 있었습니다. 그치만 promise나 callback은 단 하나의 data을 받고 종료되어 버리는 패턴을 가지고 있습니다.
then(), catch()
를 통해 데이터를 받고 끝나는 것 입니다. 그렇기 때문에 이 데이터들이 시간과 연계되어 sequential하게 받아야 하는 상황이 생긴다면 promise
를 사용하여 해결 할 수 없습니다. 이때 사용할 수 잇는 것이 Observable객체
입니다.
promise와의 큰 차이점은 Cancel이 가능
하다는 것 입니다. 이 역시 시퀀셜하게 들어오는 데이터의 스트림 이기 때문에 취소를 할 수 있는 것 입니다.
(Observer의 구성)
출처: https://arnoldyoo.tistory.com/19 [Arnold's life]