Sobes.tech
Junior

Ispričaj mi o konstrukciji async/await u JavaScript-u.

sobes.tech АИ

Одговор од АИ

async/await — синтаксички шећер над promises, дизајниран за лакше писање асинхроног кода који изгледа синхроно.

Функција означена речју async увек враћа promise. Унутар async функције може се користити кључна реч await.

Оператор await се користи пре позива promise. Он зауставља извршавање async функције док promise не буде решен (resolved) или одбијен (rejected). Резултат promise-а (успех или грешка) враћа се од стране await.

Ако је promise, на који се примењује await, одбијен, то изазива изузетак који се може ухватити блоком try...catch.

// Пример коришћења async/await
async function fetchData() {
  try {
    // Чекамо да се заврши асинхрона операција (нпр. API захтев)
    const response = await fetch('https://api.example.com/data');
    // Анализирати одговор у JSON
    const data = await response.json();
    // Приказати добијене податке
    console.log(data);
  } catch (error) {
    // Ухватити могућу грешку
    console.error('Грешка при добијању података:', error);
  }
}

// Позивамо async функцију
fetchData();

// Async функција која враћа promise
async function getValue() {
  return 10; // Ово се аутоматски убацује у Promise.resolve(10)
}

getValue().then(value => console.log(value)); // Исписаће 10

Предности async/await:

  • Читљивост кода: Асинхронај код постаје сличнији синхронима
  • Обрада грешака: Једноставније за коришћење са стандардним try...catch блоковима
  • Мање унутрашњег нивоа: Избегава "ад коллбека" или дуге ланце .then().

Важно је запамтити да await може да се користи само унутар async функција.