[javascript] RxJS의 구독 취소를 위해 사용되는 연산자는?
예를 들어, 다음과 같이 Observable
을 생성하고 구독한 후 일정 시간이 지난 후 구독을 취소하고 싶다면 unsubscribe
연산자를 사용할 수 있습니다:
const { Observable } = require('rxjs');
const observable = new Observable((subscriber) => {
// 일정 주기로 값을 방출하는 비동기 작업
const intervalId = setInterval(() => {
subscriber.next('Hello');
}, 1000);
// 일정 시간이 지난 후 구독 취소
setTimeout(() => {
subscriber.complete();
clearInterval(intervalId);
}, 5000);
// 구독 취소 시 호출되는 함수
return () => {
clearInterval(intervalId);
};
});
const subscription = observable.subscribe((value) => {
console.log(value);
});
setTimeout(() => {
subscription.unsubscribe();
}, 3000);
위 코드에서 unsubscribe
함수는 Observable
의 subscribe
메서드로부터 반환되는 Subscription
객체에 포함되어 있습니다. 구독을 취소하고 싶을 때, unsubscribe
메서드를 호출하면 됩니다. unsubscribe
메서드를 호출함으로써 Observable
이 값을 방출하지 않게 됩니다.