У меня проблемы с пониманием, почему отмена подписки на подписку rxjs с добавленным шагом не отменяет запрос http в полете.
Взгляните на: https://stackblitz.com/edit/angular5-http-example-nx8fza
Вы заметите на вкладке сети для Chrome, один щелчок отменяет запросы, а другой нет.
getJoke(): void {
this.jokeSub = this.api.getData()
.subscribe(data => this.joke = data);
this.jokeSub.unsubscribe();
}
// This method does not cancel requests in flight because of the .add step.
getJoke2(): void {
this.jokeSub2 = this.api.getData()
.subscribe(data => this.joke = data).add(console.log("Added step"));
this.jokeSub2.unsubscribe();
}
Примечание: я сталкивался с этим, когда настраивал перехватчик http в Angular 7 с помощью rxjs 6. Я не мог отменить запросы, когда у моего перехватчика была какая-то логика в канале. Я думаю, что если я смогу понять, почему это не работает, я могу ответить на мой более конкретный вопрос.