Ви повинні підписатися на повернуті спостережувані дані, якщо ви хочете, щоб дзвінок виконувався.
Завжди підписуйтесь!
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.