Sobes.tech
Middle

Маъзулоти Observable ва Promise чӣ гунаанд ва фарқиятҳо чистанд?

sobes.tech AI

Ҷавоб аз AI

Адзінакшнасці:

  • Рэпрэзентуюць асінхронныя аперацыі.
  • Выкарыстоўваюць функцыі для апрацоўкі выніку (рашыў) і памылкі (адхілены).

Адрозненні:

Асаблівасць 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);
});