Async/Await
Async/await — це синтаксичний цукор для роботи з асинхронними операціями (промісами), що робить код схожим на звичайний синхронний.
Асимптотичний аналіз ігнорує константи та менші доданки, фокусуючись на тому, як 'росте' час виконання при великих $n$. Це дозволяє обрати найефективніше рішення ще на етапі проектування.
graph LR
Center["Async/Await"]:::main
Pre_algorithms["algorithms"]:::pre --> Center
click Pre_algorithms "/terms/algorithms"
Rel_big_o_notation["big-o-notation"]:::related -.-> Center
click Rel_big_o_notation "/terms/big-o-notation"
Rel_algorithms["algorithms"]:::related -.-> Center
click Rel_algorithms "/terms/algorithms"
Rel_space_complexity["space-complexity"]:::related -.-> Center
click Rel_space_complexity "/terms/space-complexity"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простими словами
Це як замовити піцу. Ви робите замовлення (`async`) і продовжуєте займатися своїми справами (дивитесь кіно, прибираєте). Але коли приїжджає кур'єр, ви відкладаєте справи (`await`), щоб забрати піцу. Вся ваша жизнь не зупиняється, поки піца готується.
🤓 Expert Deep Dive
Використання await дозволяє уникнути 'Callback Hell' та надмірного вкладення .then(). Важливо пам'ятати, що await зупиняє лише виконання конкретної асинхронної функції, але не головний потік (Main Thread). Для оптимальної продуктивності декілька незалежних запитів краще запускати одночасно через Promise.all().