Sobes.tech
Middle

Koje su sličnosti i razlike između Observable i Promise?

sobes.tech АИ

Одговор од АИ

Сличности:

  • Представљају асинхроне операције.
  • Користе функције за обраду резултата (решено) и грешке (одбачено).

Разлике:

Карактеристика 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);
});