Это широкая тема (может охватывать все RxJS), но вот основы.
Наблюдаемые являются объектами, которые могут асинхронно излучать значение, иуведомлять пользователей, когда есть ошибка или больше объектов не будет испущено.Вы регистрируетесь, чтобы получить значения из наблюдаемой, используя subscribe
(хорошо, технически это не only , но это обычный и самый простой способ).Они разрешают такой поток:
- Наблюдаемые созданы
- Вы подписываетесь и распечатываете испускаемое значение (
obs.subscribe(v => console.log(v)
) - Время проходит, вещи происходят (методкуда была вызвана подписка, уже давно возвращено)
- Наблюдаемое излучает "Hello World"
- Вызывается обратный вызов, который вы передали в
subscribe
, и на консоль выводится "Hello World".
Они полезны в HTTP-запросах (через HttpClient), в частности, потому что HTTP-запросы изначально асинхронны.Вы положили байты на провод, и в какой-то момент байты вернутся.Вы не хотите, чтобы ваш сайт зависал, пока вы ждете.Следовательно,HttpClient
методы возвращают наблюдаемые, на которые вы подписаны, чтобы получить результат запроса.
Что касается методов, которые вы упомянули (map
, filter
, pipe
), то они просто вспомогательные методыкоторые позволяют вам делать различные вещи для наблюдаемого, когда он излучает.Есть лотов больше, и вы можете найти намного больше о каждом из них в документации.Краткий обзор map
и filter
(не использовал pipe
):
map
берет наблюдаемый источник и позволяет преобразовать его в другой тип наблюдаемой. filter
создает наблюдаемое, которое испускает элементы из наблюдаемого источника, только если предикат удовлетворен.