Sobes.tech
Middle

Care sunt asemănările și diferențele dintre Observable și Promise?

sobes.tech AI

Răspuns de la AI

Similarități:

  • Reprezintă operații asincrone.
  • Utilizează funcții pentru a trata rezultatul (rezolvat) și eroarea (respinsă).

Diferențe:

Caracteristică Promise Observable
Valoare/eveniment Returnează o valoare sau o eroare. Returnează 0 sau mai multe valori în timp.
Anulare Nu poate fi anulat după pornire. Se poate anula abonamentul.
Multiple abonați Executare unică independentă de abonați. O nouă abonare duce de obicei la o nouă execuție (Observable rece).
Lene Începe să se execute imediat după creare. Începe să se execute doar după abonare.
Operatori Nu are operatori încorporați pentru transformare. Are o gamă bogată de operatori (map, filter, merge etc.).
Exemple de utilizare Cereri HTTP, acțiuni întârziate. Evenimente UI, conexiuni WebSocket, intervale.

Exemplu Observable:

import { Observable } from 'rxjs';

const observable = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  setTimeout(() => {
    subscriber.next(3);
    subscriber.complete();
  }, 1000);
});

Exemplu Promise:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Datele au fost primite');
  }, 1000);
});