Ви повинні підписатися на повернуті спостережувані дані, якщо ви хочете, щоб дзвінок виконувався.
Завжди підписуйтесь!
HttpClientМетод не починає свій запит HTTP , поки ви не викличете підписатися () на спостережуваному повертається цей метод. Це справедливо для всіх HttpClient методів .
У AsyncPipe виписує (і відписується) для вас автоматично.
Всі спостережувані дані, повернуті з HttpClientметодів, холодні за дизайном. Виконання HTTP-запиту відкладається , що дозволяє розширити спостережуване за допомогою додаткових операцій, таких як tapі catchErrorдо того, як щось насправді станеться.
Виклик subscribe(...)запускає виконання спостережуваного і викликає HttpClientскладання та відправлення HTTP-запиту на сервер.
Ви можете вважати ці спостереження як креслення для фактичних HTTP-запитів.
Фактично, кожен subscribe()ініціює окреме, незалежне виконання спостережуваного. Двічі підписка призводить до двох HTTP-запитів.
content_copy
const req = http.get<Heroes>('/api/heroes');
// 0 requests made - .subscribe() not called.
req.subscribe();
// 1 request made.
req.subscribe();
// 2 requests made.