Async and Await
The keywords async
and await
are special syntax for working with promises.
A function marked as async
always returns a Promise
— if we return a non-promise value, it's automatically wrapped in Promise.resolve
.
Within the function, we can use await
to wait for a promise to be resolved or rejected and access its value.
The main advantage of this syntax is that we don't introduce deeply nested callback chains. However, all the complexity of asynchronous programming is still here, even if the syntax looks nicer.