Sobes.tech
Middle

Какви са сходствата и разликите между Observable и Promise?

sobes.tech AI

Отговор от AI

Подобия:

  • Представляват асинхронни операции.
  • Използват функции за обработка на резултата (resolved) и грешката (rejected).

Разлики:

Особеност Promise Observable
Стойност/събитие Връща една стойност или грешка. Връща 0 или повече стойности с времето.
Отмяна Не може да бъде отменена след стартиране. Може да се отменя абонамента.
Множество абонати Еднократно изпълнение независимо от абонатите. Нов абонамент обикновено води до ново изпълнение (студен Observable).
Ленивост Започва веднага след създаването. Започва само след абониране.
Оператори Няма вградени оператори за трансформация. Има богат набор от оператори (map, filter, merge и др.).
Примери за използване HTTP заявки, отложени действия. UI събития, WebSocket връзки, интервали.

Пример Observable:

import { Observable } from 'rxjs';

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

Пример Promise:

const promise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('Данните са получени');
  }, 1000);
});