Middle
Jaké jsou podobnosti a rozdíly mezi Observable a Promise?
sobes.tech AI
Odpověď od AI
Podobnosti:
- Představují asynchronní operace.
- Používají funkce k zpracování výsledku (vyřešeného) a chyby (zamítnuté).
Rozdíly:
| Vlastnost | Promise | Observable |
|---|---|---|
| Hodnota/událost | Vrací jednu hodnotu nebo chybu. | Vrací 0 nebo více hodnot v čase. |
| Zrušení | Nelze zrušit po spuštění. | Lze zrušit odběr. |
| Více odběratelů | Jednorázové provedení nezávislé na odběratelích. | Nový odběr obvykle vede k novému provedení (studený Observable). |
| Líný | Ihned začíná po vytvoření. | Začne až po odběru. |
| Operátory | Nemá vestavěné operátory pro transformaci. | Má bohatou sadu operátorů (map, filter, merge atd.). |
| Příklady použití | HTTP požadavky, odložené akce. | UI události, WebSocket spojení, intervaly. |
Příklad Observable:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Příklad Promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data received');
}, 1000);
});