Observable представляет собой поток данных, способный излучать множество значений с течением времени. Он реактивен и поддерживает отмену подписки. Promise всегда разрешается либо отклоняется только один раз и является одноразовым. Observable поддерживает операторы для преобразования данных, Promise — нет.
| Характеристика | Observable | Promise |
|---|---|---|
| Количество значений | Может излучать множество значений | Всегда одно значение (resolve/reject) |
| Отмена | Поддерживает отмену подписки | Не поддерживает отмену |
| Реактивность | Реактивный | Нет |
| Операторы | Поддерживает операторы (map, filter, etc.) | Нет |
| Ленивость | Ленивый (выполняется при подписке) | Жадный (выполняется сразу) |
Пример Observable:
typescript
Пример Promise:
javascript