Middle
Какви са сходствата и разликите между Observable и Promise?
sobes.tech AI
Отговор от AI
Подобия:
- Представляват асинхронни операции.
- Използват функции за обработка на резултата (resolved) и грешката (rejected).
Разлики:
| Особеност | Promise | Observable |
|---|---|---|
| Стойност/събитие | Връща една стойност или грешка. | Връща 0 или повече стойности с времето. |
| Отмяна | Не може да бъде отменена след стартиране. | Може да се отменя абонамента. |
| Множество абонати | Еднократно изпълнение независимо от абонатите. | Нов абонамент обикновено води до ново изпълнение (студен Observable). |
| Ленивост | Започва веднага след създаването. | Започва само след абониране. |
| Оператори | Няма вградени оператори за трансформация. | Има богат набор от оператори (map, filter, merge и др.). |
| Примери за използване | HTTP заявки, отложени действия. | UI събития, WebSocket връзки, интервали. |
Пример Observable:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Пример Promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Данните са получени');
}, 1000);
});