Async и await са две ключови думи в JavaScript, които улесняват писането на асинхронен код. Асинхронният код е код, който не се изпълнява наведнъж, а вместо това се изпълнява на части. Това често е необходимо, когато работите с неща като интернет, където трябва да изчакате отговор от сървър, преди да можете да продължите.

Преди async и await, асинхронният код в JavaScript често се пишеше с помощта на обещания. Обещанията са обекти, които представляват бъдеща стойност. Когато извикате функция, която връща обещание, функцията няма да се върне веднага. Вместо това ще върне обещания обект. Обектът обещание в крайна сметка ще разреши със стойност или ще отхвърли с грешка.

Можете да използвате обещания, за да свържете заедно асинхронни операции. Например, можете да извикате функция, за да извлечете някои данни от интернет, и след това да извикате друга функция, за да обработите тези данни. Първата функция ще върне обещание, а втората функция ще приеме това обещание като свой аргумент. Втората функция не би започнала да обработва данните, докато първата не приключи извличането им.

Async и await улесняват писането на асинхронен код, като го правят да изглежда повече като синхронен код. С async и await можете да пишете код, който чака обещание да се разреши, преди да продължите, точно както бихте изчакали стойност да се върне от синхронна функция.

Ето пример за това как да използвате async и да изчакате да извлечете някои данни от интернет и да ги обработите:

async function fetchData() {
  const response = await fetch("https://www.example.com/data.json");
  const data = await response.json();
  return data;
}

const processedData = await fetchData();
console.log(processedData); // The data from the JSON file

В този пример функцията fetchData() е асинхронна функция. Ключовата дума await се използва преди извикването на функцията fetch(). Това казва на двигателя на JavaScript да изчака, докато функцията fetch() завърши извличането на данните, преди да продължи. След като данните бъдат извлечени, изразът await ще върне данните на функцията fetchData(). След това функцията fetchData() ще върне данните на повикващия.

Async и await са мощен инструмент за писане на асинхронен код в JavaScript. Те улесняват писането на код, който е по-четим и поддържаем.

Ето някои други примери за това как да използвате async и await:

  • Правете HTTP заявки.
  • Четете и записвайте файлове.
  • Работа с API.
  • Изпълнявайте задачи паралелно.

Async и await са мощен инструмент, който може да се използва за опростяване на асинхронен код в JavaScript.