Loading
A way to write code that waits for slow things (like network calls) without blocking everything else.
Syntax that lets you write asynchronous code that looks synchronous. `async` marks a function as returning a promise; `await` pauses execution until a promise resolves, yielding control to the event loop in the meantime.
Sugar over generators and promises. Each `await` desugars into a `.then()` continuation; the function's local state is captured in a coroutine-like frame. Throws inside an async function become promise rejections; try/catch transparently handles awaited rejections.