Sobes.tech
Back to questions
Middle+
2

Расскажи про промисы: состояния, методы, async/await

Companies where asked
Employcity

Answer from AI

sobes.tech AI

Промисы в JavaScript — это объекты, которые представляют результат асинхронной операции и могут находиться в одном из трёх состояний:

  • Pending (ожидание) — начальное состояние, операция ещё не завершена.
  • Fulfilled (выполнено) — операция успешно завершена, есть результат.
  • Rejected (отклонено) — операция завершилась с ошибкой.

Основные методы промисов:

  • .then(onFulfilled, onRejected) — добавляет обработчики для успешного и ошибочного результата.
  • .catch(onRejected) — добавляет обработчик для ошибок (эквивалентно .then(null, onRejected)).
  • .finally(onFinally) — вызывается в любом случае после завершения промиса.

async/await — синтаксический сахар над промисами, позволяющий писать асинхронный код в стиле синхронного. Функция, объявленная с async, всегда возвращает промис. Ключевое слово await приостанавливает выполнение функции до завершения промиса.

Пример:

function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => resolve('Данные получены'), 1000);
  });
}

async function getData() {
  try {
    const result = await fetchData();
    console.log(result); // 'Данные получены'
  } catch (error) {
    console.error('Ошибка:', error);
  }
}

getData();

Такой подход упрощает чтение и обработку асинхронных операций.