Sobes.tech
Middle

Kako funkcioniše Promise u JavaScript-u?

sobes.tech АИ

Одговор од АИ

  • Објекат који представља могући коначни завршетак (или неуспех) асинхроне операције и њену резултујућу вредност.
  • Статуси промиса:
    • pending: почетни статус, ни испуњен ни одбачен.
    • fulfilled: означава да је операција успешно завршена.
    • rejected: означава да је операција завршена грешком.
  • Прелазак из pending у fulfilled или rejected дешава се једном и не може се променити.
  • Методи:
    • .then(onFulfilled, onRejected): прихвата две callback функције. Прва (onFulfilled) се позива у случају успеха, друга (onRejected) у случају грешке. Обе аргументе су опциони. Враћа нови промис.
    • .catch(onRejected): скраћени облик .then(null, onRejected). Користи се за обраду грешака. Враћа нови промис.
    • .finally(onFinally): позива се без обзира на резултат промиса (успех или грешка). Полезно за чишћење ресурса. Враћа нови промис.
  • Креирање промиса:
new Promise((resolve, reject) => {
  // Асинхрона операција
  const success = true;
  if (success) {
    resolve("Операција успешна!"); // прелаз у стање fulfilled
  } else {
    reject("Нешто није у реду..."); // прелаз у стање rejected
  }
});
  • Лансирање промиса: .then(), .catch(), .finally() враћају промисе, што омогућава стварање ланаца за последовно извршавање асинхроних операција.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Грешка:', error));