Middle
Mik a hasonlóságok és különbségek az Observable és Promise között?
sobes.tech MI
Válasz az MI-től
Hasonlóságok:
- Aszinkron műveleteket képviselnek.
- Funkciókat használnak az eredmény (megoldott) és a hiba (elutasított) kezelésére.
Különbségek:
| Jellemző | Promise | Observable |
|---|---|---|
| Érték/esemény | Egy értéket vagy hibát ad vissza. | 0 vagy több értéket ad vissza idővel. |
| Mégse | Nem lehet megszakítani a futás közben. | Feliratkozás lemondható. |
| Több feliratkozó | Egyszeri végrehajtás, független a feliratkozóktól. | Egy új feliratkozás általában új végrehajtáshoz vezet (hideg Observable). |
| Lazán érték | Azonnal elindul a létrehozás után. | Csak feliratkozás után kezd el működni. |
| Operátorok | Nincs beépített operátor a transzformációhoz. | Gazdag operátorkészlet (map, filter, merge stb.). |
| Használati példák | HTTP kérések, késleltetett műveletek. | UI események, WebSocket kapcsolatok, intervallumok. |
Observable példa:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Promise példa:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Adatok megérkeztek');
}, 1000);
});