Middle
Kādi ir līdzības un atšķirības starp Observable un Promise?
sobes.tech AI
Atbilde no AI
līdzības:
- Attēlo asenhronas operācijas.
- Izmanto funkcijas rezultāta (risināts) un kļūdas (atsakīts) apstrādei.
Atšķirības:
| Īpašība | Promise | Observable |
|---|---|---|
| Vērtība/notikums | Atgriež vienu vērtību vai kļūdu. | Atgriež 0 vai vairākas vērtības laika gaitā. |
| Atcelšana | Nav iespējams atcelt pēc uzsākšanas. | Var atcelt abonēšanu. |
| Vairāki abonenti | Vienreizēja izpilde neatkarīgi no abonentiem. | Jauna abonēšana parasti noved pie jaunas izpildes (auksts Observable). |
| Lēnība | Sāk izpildīt tūlīt pēc izveides. | Sāk tikai pēc abonēšanas. |
| Operatori | Nav iebūvētu operatoru pārveidošanai. | Bagāts operatoru klāsts (map, filter, merge un citi). |
| Piemēri | HTTP pieprasījumi, atliktas darbības. | UI notikumi, WebSocket savienojumi, intervāli. |
Observable piemērs:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Promise piemērs:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Dati saņemti');
}, 1000);
});