2024-08-01 12:00:01
🖥 Як влаштований і навіщо потрібен async/await

Асинхронний код на JavaScript завжди був необхідний — запити до сервера, таймери, робота з файлами займають час і не повинні блокувати сторінку. Раніше для цього використовували колбеки або ланцюжки промісів, але такі конструкції швидко ставали заплутаними і складними в підтримці.

async/await вирішує цю проблему. Це синтаксис, який дозволяє писати асинхронний код у звичній покроковій формі, але під капотом він залишається неблокуючим.

Як це працює

Щоб використовувати async/await, достатньо оголосити функцію з ключовим словом async. Це означає, що вона завжди поверне промис. Усередині такої функції можна застосовувати await, щоб дочекатися завершення промису перед виконанням наступної інструкції.

Приклад:
async function fetchData() {
const response = await fetch(“/data.json”);
const data = await response.json();
console.log(data);
}

Такий код легко читати і підтримувати — він йде по кроках і не містить вкладених .then() і .catch().

Переваги в порівнянні з колбеками і промисами:

— Немає вкладених функцій і «пірамід пекла» з колбеків.
— Помилки можна обробляти звичним try/catch, як у синхронному коді.
— Логіка програми залишається лінійною і передбачуваною.

Коллбеки і проміси як і раніше працюють і підходять для деяких випадків, але async/await значно полегшує написання і підтримку асинхронного коду.

Якщо ви все ще використовуєте ланцюжки .then() або довгі колбеки — спробуйте переписати їх з async/await. Код стане чистішим, а помилки — легше виявляти.

Code Ukraine
Читати в Telegram