Подписка
Что такое Подписка? Подписка — это объект, представляющий собой ресурс, подлежащий утилизации, обычно выполнение Observable. У подписки есть один важный метод, unsubscribe, который не принимает аргументов и просто освобождает ресурс, удерживаемый подпиской. В предыдущих версиях RxJS подписка называлась "Disposable".
import { interval } from 'rxjs';
const observable = interval(1000);
const subscription = observable.subscribe(x => console.log(x));
// Later:
// This cancels the ongoing Observable execution which
// was started by calling subscribe with an Observer.
subscription.unsubscribe(); Подписка по сути имеет только функцию unsubscribe() для освобождения ресурсов или отмены выполнения Observable.
Подписки также могут быть объединены, так что вызов метода unsubscribe() одной подписки может отменить подписку на несколько подписок. Это можно сделать, «добавив» одну подписку в другую:
import { interval } from 'rxjs';
const observable1 = interval(400);
const observable2 = interval(300);
const subscription = observable1.subscribe(x => console.log('first: ' + x));
const childSubscription = observable2.subscribe(x => console.log('second: ' + x));
subscription.add(childSubscription);
setTimeout(() => {
// Unsubscribes BOTH subscription and childSubscription
subscription.unsubscribe();
}, 1000); При выполнении мы видим в консоли:
second: 0 first: 0 second: 1 first: 1 second: 2
Подписки также имеют метод remove(otherSubscription) для отмены добавления дочерней подписки.
© 2015–2022 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/guide/subscription