Чтобы создать Observable, вы можете использовать new Observable
или оператор создания. См. Следующий пример:
const observable = new Observable(function subscribe(subscriber) {
subscriber.next(1);
subscriber.next(2);
subscriber.next(3);
});
Вы можете предоставить функцию unsubscribe()
, позволяющую утилизировать ресурсы, и эта функция входит внутрь subscribe()
следующим образом:
const observable = new Observable(function subscribe(subscriber) {
subscriber.next(1);
subscriber.next(2);
subscriber.next(3);
return function unsubscribe() {
console.log('Clearing resources on observable');
};
});
Конечно можно использовать выражение функции стрелки , чтобы иметь:
const observable = new Observable((observer) => {
observer.next(1);
observer.next(2);
observer.next(3);
return () => {
console.log('Clearing resources on observable');
};
});
Попробуйте следующий код для проверки наблюдаемого:
const subscription = observable.subscribe(res => console.log('observable data:', res));
subscription.unsubscribe();
Наконец, subscription.unsubscribe()
- это собираемся удалить соединение с сокетом в вашем примере.
Найдите проект, работающий с этими примерами, здесь: https://stackblitz.com/edit/typescript-observable-unsubscribe
Дайте мне знать, если это поможет!