Middle
Aké sú podobnosti a rozdiely medzi Observable a Promise?
sobes.tech AI
Odpoveď od AI
Podobnosti:
- Predstavujú asynchrónne operácie.
- Používajú funkcie na spracovanie výsledku (riešeného) a chyby (zamietnutej).
Rozdiely:
| Vlastnosť | Promise | Observable |
|---|---|---|
| Hodnota/udalosť | Vráti jednu hodnotu alebo chybu. | Vráti 0 alebo viac hodnôt v čase. |
| Zrušenie | Nemôže byť zrušené po spustení. | Môže byť zrušené odberom. |
| Viacerí odberatelia | Jednorazové vykonanie nezávislé od odberateľov. | Nový odber zvyčajne vedie k novému vykonaniu (studený Observable). |
| Lenivosť | Začína ihneď po vytvorení. | Začne až po odberu. |
| Operátory | Nemá zabudované operátory na transformáciu. | Má bohatý súbor operátorov (map, filter, merge atď.). |
| Príklady použitia | HTTP požiadavky, odložené akcie. | UI udalosti, WebSocket spojenia, intervaly. |
Príklad Observable:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Príklad Promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Dáta prijaté');
}, 1000);
});