Каждая подписка на observable делать запрос к серверу?

В Angular есть механизмы для работы с асинхронными операциями, такими как запросы к серверу. Один из таких механизмов - это Observables, которые предоставляют поток данных, с которыми можно работать реактивно.

Когда вы подписываетесь на Observable, вы выражаете свою заинтересованность в получении данных, предоставляемых Observable. Это означает, что каждый раз, когда Observable генерирует новое значение, ваш код будет выполняться.

Однако подписка на Observable не делает запрос к серверу. Она только устанавливает связь между вашим кодом и Observable, чтобы вы могли получать данные, когда они станут доступными.

Чтобы выполнить запрос к серверу с использованием Observable, вы можете использовать класс HttpClient, который предоставляет удобный способ взаимодействия с HTTP-ресурсами. Вы можете создать объект HttpClient в своем сервисе или компоненте, и затем использовать его методы, такие как get, post, put и delete, для выполнения запросов.

Для того, чтобы получить данные с сервера, вы можете вызвать метод get на вашем объекте HttpClient, передавая ему URL ресурса, откуда вы хотите получить данные. Этот метод возвращает Observable, который вы можете подписать, чтобы получить данные, когда они будут доступны.

Если вы хотите выполнять запросы к серверу при каждой подписке на Observable, вы можете просто подписаться на Observable, возвращаемый методом get каждый раз, когда это необходимо. Ваш код будет выполняться каждый раз, когда Observable генерирует новую порцию данных.

Однако часто разумнее сделать запрос к серверу один раз и затем использовать полученные данные в нескольких местах вашего кода. Для этого вы можете использовать операторы RxJS, такие как shareReplay или publishReplay, чтобы разделять результаты запросов к серверу между несколькими подписчиками. Это позволит избежать множественных запросов к серверу при каждой подписке на Observable.

В итоге, способ выполнения запросов к серверу при каждой подписке на Observable зависит от вашего конкретного случая использования. Важно сделать выбор, который лучше соответствует требованиям вашего приложения и обеспечивает эффективность и оптимальное использование ресурсов.