3.1.4 RxJS와 다른 API 간의 취소 불일치
RxJS 옵저버블은 이벤트 스트림을 취소하고 해제하는 단순한 메커니즘을 제공합니다. 그러나 이 단순성은 다른 자바스크립트 API와 함께 사용할 때 문제가 될 수 있습니다. 예를 들어 Promise
를 감싸는 옵저버블을 취소하려고 할 때 문제가 발생할 수 있습니다. 다음 예제를 보겠습니다.
예제 3-2 Promise의 해제
const promise = new Promise((resolve, reject) => { -- 10초 뒤에 42를 반환하는 Promise를 생성합니다. setTimeout(() => { resolve(42); }, 10000); ); promise.then(val => { console.log(`In then(): ${val}`); -- 반환된 Promise 값을 처리합니다. }); const subscription$ = Rx.Observable.fromPromise(promise).subscribe(val => { console.log(`In subscribe(): ${val}`); -- Promise API 주위에 옵저버블을 래핑합니다. }); subscription$.unsubscribe(); -- 옵저버블을 해제하려고 시도합니다.