Promises

Download javascript eBook

Syntax

  • 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. The following table gives an overview of the earliest browser versions that provide support for promises.

ChromeEdgeFirefoxInternet ExplorerOperaOpera MiniSafariiOS Safari
321227x19x7.18

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.

Related Examples

Stats

16864 Contributors: 139
Thursday, July 20, 2017
Licensed under: CC-BY-SA

Not affiliated with Stack Overflow
Rip Tutorial: info@zzzprojects.com

Download eBook