Sobes.tech
Middle

Как работи Promise в JavaScript?

sobes.tech AI

Отговор от AI

  • Обект, който представлява възможното крайно завършване (или неуспех) на асинхронна операция и нейното резултатно стойност.
  • Статуси на промиса:
    • pending: начално състояние, нито изпълнено, нито отхвърлено.
    • fulfilled: означава, че операцията е успешно завършена.
    • rejected: означава, че операцията е приключила с грешка.
  • Преходът от pending към fulfilled или rejected се случва еднократно и е необратим.
  • Методи:
    • .then(onFulfilled, onRejected): приема две функции за обратно извикване. Първата (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));