13 intro: A quick reference to the JavaScript [Promise API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
15 - [Using Promises guide](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises) _(developer.mozilla.org)_
16 - [Promise documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) _(developer.mozilla.org)_
21 new Promise((resolve, reject) => {
26 reject(new Error('oops'))
32 Use [new Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#Contstructor) to create new promises.
34 ### Consuming promises
46 [then()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) runs a function when a promise resolves. [catch()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch) runs when a promise fails.
51 const promises = [promise1(), promise2() /* ... */]
55 // Succeeds when all succeed
56 Promise.all(promises).then((results) => {
62 // Succeeds when one finishes first
63 Promise.race(promises).then((result) => {
68 ### Converting other promises
71 return Promise.resolve('result')
72 return Promise.resolve(promise)
73 return Promise.resolve(thenable)
75 return Promise.reject('reason')
77 Promise.resolve(result).then(() => {
82 `Promise.resolve(val)` will return a promise that resolves to the value given to it.