вот следующий код, который позволяет мне сделать http-запрос к серверу, чтобы получить заданный статус среди нескольких возможных (объединение данных).
getIntervalStatus(sessionId: string): Observable<HttpResponse<string>> {
return interval(1000).pipe(
switchMap(value => {
return this.getStatus(sessionId);
}),
);
}
Как я могу отписаться от наблюдаемого, возвращенного interval(1000)
?
Когда я отписываюсь с подпиской getIntervalStatus.subscribe()
, она не останавливает interval (1000)
, которая продолжает передачу. Смотрите пример ниже
this.getIntervalStatusSubscription = this.device.getIntervalStatus(this.printerVMService.getSessionId()).subscribe(
status => {
switch (this.status) {
case 'opened':
break;
case 'payed':
this.getIntervalStatusSubscription.unsubscribe();
break;
case 'closed':
this.getIntervalStatusSubscription.unsubscribe();
break;
case 'used':
this.getIntervalStatusSubscription.unsubscribe();
break;
default:
}
},