RxJs개념 ) Observable

Jeong-Taek·2022년 10월 22일
0

RxJs란?

RxJs는 ReactiveX의 Javascript를 위한 라이브러리다
ReactiveX는 Observer패턴, Iterator 패턴, 함수형 프로그래밍을 조합하여 가공한다.
ReactiveX는 이벤트를 observable로 추상화하여 시간에 따른 스트림으로 간주할 수 있게 한다.
observable이 observer에게 전달되기 전에 operator을 이용해 재가공이 가능하다.

RxJs를 사용하여 비동기 코드를 직관적이고 가독성이 좋게 작성할 수 있다

Observable

Observable은 시간의 흐름에 따라 발생하는 이벤트들의 스트림이라고 볼 수 있다.
pipeline을 설치해 여러 이벤트나 데이터를 Observer에게 보낸다.
스트림은 관념적으로 뒤에 $를 붙인다.

Observable.create()나 new Observable()로 생성할 수 있다.

Observable의 subscribe()를 통해 Observer 객체를 생성하고 만들어진 Observer 객체로

함수를 호출해 값을 발행한다.

Observable을 subscribe하고 반환받은 객체로 구독을 해제할 수 있다.

const subscription = observable.subscribe(x => console.log(x));

subscription.unsubscribe();

Observable의 unsubscribe()로 구독을 해제하면 Observable을 실행하지 않고 멈춘다.

Observer는 next, error, complete 3가지 함수로 구성된 객체이다.

next : Observable subscriber에게 데이터를 전달한다
complete : Observable subscriber에게 완료를 알리면 next가 데이터 전달을 멈춘다.
error : Observable subscriber에게 에러를 전달하면 next, complete가 발생하지 않는다.

Observable은 생성, 구독, 실행, 구독해제의 Life-Cycle을 가진다.

생성 : Observable.create()
구독 : Observable.subscribe()
실행 : observer.next()
구독해제 : observer.complete() / Observable.unsubscribe()

0개의 댓글