Promises
Promises are part of the ECMAScript 2015 standard (or ES6, which is why they are also called ES6 promises) and have been natively available in Node.js since version 4. But the history of promises goes back a few years earlier, when there were dozens of implementations around, initially with different features and behavior. Eventually, the majority of those implementations settled on a standard called Promises/A+.
Promises constitute a big step toward providing a robust alternative to continuation-passing-style callbacks for propagating an asynchronous result. As we will see, the use of promises will make asynchronous control flow constructs easier to read, less verbose, and more robust compared to their callback-based alternatives.
What is a promise?
A promise is an object that represents the eventual result (or error) of an asynchronous operation. In promises jargon, we say that a Promise is pending when the asynchronous operation is not yet complete, it’...