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, делая код более линейным и понятным.