Чем отличается использование метода .then от использования оператора await при работе с промисами?
Answer from AI
sobes.tech AI
Метод .then и оператор await оба используются для работы с промисами, но отличаются по синтаксису и стилю обработки асинхронного кода:
-
.then— это метод промиса, который принимает колбэк для обработки результата или ошибки. Позволяет строить цепочки вызовов, но код может стать менее читаемым при большом количестве вложенных.then. -
await— оператор, который можно использовать только внутри асинхронной функции (async). Он приостанавливает выполнение функции до разрешения промиса, позволяя писать асинхронный код в стиле синхронного, что улучшает читаемость и упрощает обработку ошибок черезtry/catch.
Пример с .then:
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
Пример с await:
async function fetchData() {
try {
const response = await fetch(url);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
fetchData();
Таким образом, await делает асинхронный код более линейным и удобным для чтения, а .then — более традиционный способ работы с промисами.