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