Можем да използваме Promises и observables с Asynchronous в JavaScript. И двата подхода изглеждат еднакви, но имат разлики.

Обещания

В обещанията функцията връща обещание. На обещанието се присвоява задача, която да се изпълни, след като Async завърши. Async и Await са ключови думи, които по-често идват с Promise. Ключовата дума Await забавя изпълнението на функцията Async, докато обещанието изпълни задачата, която е присвоена. Promise преминава три състояния по време на своя цикъл на изпълнение.

  • В изчакване

Думата „В очакване“ предава значението на „Все още не съм се взрял“. Това е първоначалното състояние на Обещанието.

  • Изпълнено

Думата изпълнен има значението на „завършен“. На този етап задачата, възложена на Promise, беше изпълнена.

  • Отхвърлен

Думата „Отхвърлено“ означава, че задачата е „Отказана“. В този етап задачата не е изпълнена и е изведена грешка.

Можем да използваме Promises, когато имаме работа с една асинхронна операция.

Наблюдаеми

Наблюдаемите могат да се използват, когато трябва да обработваме последователност от данни във времето. Наблюдаемите се случват, когато настъпи следващото събитие, когато възникне грешка и когато задачата е изпълнена. Функция за обратно извикване се използва с Observable за предоставяне на аргумент на Observable. Трите налични обратни повиквания са,

  • напред
  • onCompleted
  • onError

Наблюдаемите преминават четири етапа,

  • Създаване

На този етап се инициира наблюдаем и можем да използваме функцията create, за да инициираме наблюдаем.

  • Абонамент

Трябва да се абонираме за наблюдаем, за да работи. Тук използваме метода наабониране.

  • Изпълнение

Изпълнението на наблюдаема е вътрешността на блок.

  • Унищожаване

Унищожаването е етапът, в който се появява грешка или се наблюдава завършване. Въпреки че понякога трябва ръчно да го отпишем, в повечето случаи след унищожаването на наблюдаем абонаментът се отписва автоматично.

Наблюдаеми срещу обещания

  1. Наблюдаемите са мързеливи, когато се сравняват с обещанията. Функцията за абонат се извиква само когато наблюдаемият бъде абониран. Но веднага след създаването на обещание се извиква функцията изпълнител.
  2. Наблюдаемите могат да предоставят множество стойности, докато обещанията доставят една стойност.
  3. След иницииране на обещание не можем да го отменим. Но можем да отменим наблюдаем, след като е иницииран, като просто го отпишем.
  4. Обещанието винаги е асинхронно и можем да използваме само Async/Await ключови думи. Но наблюдаемите могат да бъдат както асинхронни, така и синхронни.

Надявам се, че тази статия ще бъде полезна за разбирането на Promises и Observables. Ще можете да разберете какви са разликите между тях.

Благодарим ви!!!