Junior — Middle
Каква е разликата между конструкциите async/await и Promise при работа с асинхронен код в JavaScript?
sobes.tech AI
Отговор от 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, правейки кода по-линеен и разбираем.