Как работать с асинхронным JavaScript? Чем отличается async/await от промисов?
Ответ от нейросети
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.