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);
});