Sobes.tech
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, правейки кода по-линеен и разбираем.