As we have just seen, promises are a quantum leap ahead of callbacks. They allow us to write clean and readable asynchronous code and provide a set of safeguards that can only be achieved with boilerplate code when working with callback-based asynchronous code. However, promises are still suboptimal when it comes to writing sequential asynchronous code. The
Promise chain is indeed much better than having callback hell, but still, we have to invoke a
await expression (async/await for short).
The async/await dichotomy allows us to write functions that appear to block at each asynchronous operation, waiting...