Sobes.tech
Middle

Jaké jsou podobnosti a rozdíly mezi Observable a Promise?

sobes.tech AI

Odpověď od AI

Podobnosti:

  • Představují asynchronní operace.
  • Používají funkce k zpracování výsledku (vyřešeného) a chyby (zamítnuté).

Rozdíly:

Vlastnost Promise Observable
Hodnota/událost Vrací jednu hodnotu nebo chybu. Vrací 0 nebo více hodnot v čase.
Zrušení Nelze zrušit po spuštění. Lze zrušit odběr.
Více odběratelů Jednorázové provedení nezávislé na odběratelích. Nový odběr obvykle vede k novému provedení (studený Observable).
Líný Ihned začíná po vytvoření. Začne až po odběru.
Operátory Nemá vestavěné operátory pro transformaci. Má bohatou sadu operátorů (map, filter, merge atd.).
Příklady použití HTTP požadavky, odložené akce. UI události, WebSocket spojení, intervaly.

Příklad Observable:

import { Observable } from 'rxjs';

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

Příklad Promise:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Data received');
  }, 1000);
});