Promises
suggest changeSyntax
- new Promise( /* executor function: */ function(resolve, reject) { })
- promise.then(onFulfilled[, onRejected])
- promise.catch(onRejected)
- Promise.resolve(resolution)
- Promise.reject(reason)
- Promise.all(iterable)
- Promise.race(iterable)
Remarks
Promises are part of the ECMAScript 2015 specification and browser support is limited, with 88% of browsers worldwide supporting it as of July 2017.
In environments which do not support them, Promise can be polyfilled. Third-party libraries may also provide extended functionalities, such as automated “promisification” of callback functions or additional methods like progress—also known as notify.
The Promises/A+ standard website provides a list of 1.0 and 1.1 compliant implementations. Promise callbacks based on the A+ standard are always executed asynchronously as microtasks in the event loop.
Waiting for multiple concurrent promises
Reduce an array to chained promises
Waiting for the first of multiple concurrent promises
Promisifying functions with callbacks
Reconciling synchronous and asynchronous operations
Performing cleanup with finally