Observable — это поток данных, который может испускать значения асинхронно. В отличие от промисов, которые возвращают одно значение, observable может испускать ноль, одно или множество значений в течение времени.
Ключевые характеристики:
- Ленивые: Поток начинает работать только при подписке.
- Отменяемые: Можно отписаться от потока, чтобы остановить его выполнение и освободить ресурсы.
- Множество значений: Могут emit'ить несколько значений, в то время как промисы резолвятся только один раз.
Основные компоненты:
- Observable: Сам поток данных.
- Observer: Объект с методами
next, error и complete, которые вызываются наблюдаемым.
- Subscription: Результат подписки на observable, позволяет отписаться.
- Operators: Функции, которые преобразуют или комбинируют observable (например,
map, filter, merge).
Пример использования (RxJS):
typescript