Как выполнить http-вызов и не подписаться на ответ

#http #angular #observable

#http #angular #наблюдаемый

Вопрос:

Мне нужно выполнить несколько http-вызовов и не подписываться на ответ (давайте предположим, что ответ всегда есть 204 ). Похоже, Angular не будет выполнять http-запрос, если список подписки пуст. Как заставить его?

Комментарии:

1. Пожалуйста, уточните вашу конкретную проблему или добавьте дополнительные детали, чтобы выделить именно то, что вам нужно. В том виде, в каком он написан в настоящее время, трудно точно сказать, о чем вы спрашиваете. Смотрите страницу «Как задать запрос» для получения помощи в разъяснении этого вопроса.

Ответ №1:

Наблюдаемые объекты ленивы и ничего не делают, пока не будет вызван subscribe() .
Вам не нужно ничего делать, хотя при поступлении данных

 this.http.get(url).subscribe()
  

подойдет.

Комментарии:

1. Гюнтер, у меня есть сценарий, в котором пользователь отправляет запрос, выполнение которого занимает слишком много времени. Если я выполню вышеуказанное, и пользователь перейдет на какой-либо другой маршрут, будет ли запрос отменен?

2. Кроме того, есть ли способ показать, что запрос выполнен, даже после того, как пользователь перенаправился от компонента, из которого он отправил запрос?

3. Я не думаю, что запрос будет отменен. Вы можете сохранить подписку this.subsr = this.http.get(url).subscribe(); , а затем в ngOnDestroy() { this.subsr.unsubscribe(); } . Будет ли запрос отменен, зависит от реализации Http или HttpClient , но, по крайней мере, ваш код больше не будет вызываться в случае получения ответа.