Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - Дмитро Охріменко
Added 06 Dec 2025 🌐 UK

Дмитро Охріменко

@okhrimenko_dm
Number of subscribers: 835
Photos: 10
Videos: 3
Links: 64
Description:
💼 Co-Founder: ITVDN та CyberBionic Systematics 🎓 Розробка та консалтинг в сфері IT понад 18 років 💻 Ментор та автор курсів Miй інстаграм https://www.instagram.com/dm.okhrimenko Чат для лампового спілкування - https://t.me/+tVRybZbaI_k1ZThi
Source

Дмитро Охріменко | Async/awaitСупроводжувати синхронний код завжди простіше, ніж асинхрон...

Telegram community logo - Дмитро Охріменко Дмитро Охріменко @okhrimenko_dm
1 300 Views/Reach 2025-10-08 10:20 Message №94
Async/await

Супроводжувати синхронний код завжди простіше, ніж асинхронний. У 2012 році в мові C# з’явився синтаксичний цукор, який значно спростив роботу з асинхронними операціями: замість вкладених callback можна було використовувати послідовний синтаксис з новими ключовими словами async та await. Згодом цю концепцію перейняли й інші мови програмування, зокрема Python та JavaScript. В JavaScript підтримку async/await додали у 2017 році.

Призначення ключових слів
async - додається до функції та вказує, що вона завжди повертає Promise.
await - використовується перед об’єктом-промісом, щоб "дочекатися" результату перед виконанням наступних рядків коду.

Перепишемо попередній приклад із завантаженням зображень, використовуючи async/await:

let image = null;

image = await downloadImage(url1);
document.body.append(image);

image = await downloadImage(url2);
document.body.append(image);

image = await downloadImage(url3);
document.body.append(image);

Тепер код виглядає як звичайний синхронний: немає вкладених callback, усе читається рядок за рядком. Можна подумати, що await "зупиняє" виконання, очікуючи на результат промісу. Насправді ж код не блокує основний потік - під капотом він перетворюється на машину станів, де кожен стан описує дію до або після await.

Ще одна перевага async/await - знайомий синтаксис для обробки помилок:

try {
let image = null;

image = await downloadImage(url1);
document.body.append(image);

image = await downloadImage(url2);
document.body.append(image);

image = await downloadImage(url3);
document.body.append(image);
} catch (ex) {
// обробка помилки
}

У результаті асинхронний код виглядає так само зрозуміло, як і синхронний, що значно спрощує його супровід.