Observable

이주희·2022년 5월 1일
0

JavaScript

목록 보기
26/49

Reactive X

Reactive eXtension

  • 함수형 프로그래밍을 통한 비동기 데이터 흐름에 중점을 둔 패러다임인 반응형 프로그래밍을 쉽게 적용할 수 있도록 도와주는 라이브러리
  • 반응형 프로그래밍: 비동기적인 데이터의 흐름을 관찰하고 처리하는 기법이다.
  • 언어 별로 라이브러리를 지원해서 RxJava, RxKotlin, RxSwift 등의 이름이 존재한다.

Observable

  • Rx에서 관찰할 수 있는 데이터 스트림을 Observable이라고 부른다.
  • promise 대신 observable을 사용해서 비동기로 값을 전달할 수 있다.
  • 여러개의 값을 전달할 수 있어서 배열을 만들고 실행하는 데 사용할 수 있다.
  • event handler의 역할도 할 수 있다.
  • promise의 한계
    1) 한번에 하나의 데이터를 처리한다.
    2) 에러 발생 시 재실행하는 기능이 없다.(요청을 취소할 수 없다.)

promise와의 차이점

Observablepromise
구독 전에는 계산을 시작하지 않는다. 👉🏻 원할 때 실행하려는 경우에 유용하다.생성과 동시에 실행된다.
여러 값을 제공한다.값을 하나만 제공한다.
chaining과 subscription을 구분짓는다.then()으로 통일한다.
에러를 처리할 때 subscribe()를 사용할 수 있다. 👉🏻 예측 가능한 에러를 처리할 때 도움이 된다.에러를 자식 promise에게 넘긴다.

Observable의 개념들

  1. Observable: 데이터를 발행하는 주체
  2. Observer: 데이터가 발행(이벤트가 발생)했는지 감시하는 주체, 이벤트를 수신받는 주체
  3. Listener Interface : 이벤트 발생을 알리는 매개체

Emitter 인터페이스

  • onNext()
    데이터가 하나 발행했음을 알린다.
  • onComplete()
    데이터 발행이 모두 완료되었음을 알린다.
  • onError()
    오류가 발행했음을 알린다.
profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글