Sobes.tech
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);
});