Как работать с асинхронным JavaScript? В чём разница между Promise и async/await?
Ответ от нейросети
sobes.tech AI
Асинхронный JavaScript позволяет выполнять операции, которые занимают время (например, запросы к серверу), не блокируя основной поток выполнения.
Promise — это объект, который представляет результат асинхронной операции и может находиться в трёх состояниях: ожидание, выполнено успешно, выполнено с ошибкой. С помощью методов .then() и .catch() можно обрабатывать результат или ошибку.
async/await — синтаксический сахар над Promise, который позволяет писать асинхронный код в стиле синхронного, делая его более читаемым и понятным. Функция, объявленная с async, возвращает Promise, а await приостанавливает выполнение до завершения Promise.
Пример с Promise:
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 делает код более линейным и удобным для чтения, особенно при цепочке асинхронных операций.