Sobes.tech
Back to questions
Junior — Middle
84

Чем отличаются конструкции async/await и Promise при работе с асинхронным кодом в JavaScript?

Answer from AI

sobes.tech AI

Promise — это объект, представляющий результат асинхронной операции, который может быть выполнен или отклонён в будущем. Он позволяет регистрировать обработчики через методы then() и catch().

async/await — синтаксический сахар над Promise, который позволяет писать асинхронный код в стиле синхронного, делая его более читаемым и удобным для отладки.

Основные отличия:

  • Promise требует цепочек then/catch для обработки результата и ошибок.
  • async/await позволяет использовать ключевые слова await для ожидания результата Promise внутри асинхронной функции.

Пример:

// Promise
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

// async/await
async function fetchData() {
  try {
    const response = await fetch(url);
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
fetchData();

Таким образом, async/await упрощает работу с Promise, делая код более линейным и понятным.