Sobes.tech
Назад к вопросам
Middle
4

Как работать с асинхронным JavaScript? Чем отличается async/await от промисов?

Компании, где спрашивали
Data World

Ответ от нейросети

sobes.tech AI

Асинхронный JavaScript позволяет выполнять операции, которые занимают время (например, запросы к серверу), не блокируя основной поток.

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

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

Пример с промисами:

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

То же с async/await:

async function getData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
getData();

Основное отличие — async/await улучшает читаемость и упрощает обработку ошибок через обычный try/catch.