Promises, async functions, and Express router functions
Before we get into developing our application, we must take a deeper look at a pair of new ES-2015/2016/2017 features that collectively revolutionize JavaScript programming: The Promise class and async functions. Both are used for deferred and asynchronous computation and can make intensely nested callback functions a thing of the past:
- A
Promiserepresents an operation that hasn't completed yet but is expected to be completed in the future. We've seen Promises in use. The.thenor.catchfunctions are invoked when the promised result (or error) is available. - Generator functions are a new kind of function that can be paused and resumed, and can return results from the middle of the function.Â
- Those two features were mixed with another, the iteration protocol, along with some new syntax, to create
asyncfunctions.Â
The magic of async functions is that we can write asynchronous code as if it's synchronous code. It's still asynchronous...