## Reference

### Introduction

intro: A quick reference to the JavaScript Promise API.

- Using Promises guide (developer.mozilla.org)
- Promise documentation (developer.mozilla.org)

### Creating promises

    new Promise((resolve, reject) => {
      doStuff(() => {
        if (success) {
          resolve('good')
        } else {
          reject(new Error('oops'))
        }
      })
    })

Use new Promise to create new promises.

### Consuming promises

    promise
      .then((result) => {
        /* success */
      })
      .catch((error) => {
        /* failure */
      })

then() runs a function when a promise resolves. catch() runs when a promise fails.

### Multiple promises

    const promises = [promise1(), promise2() /* ... */]

    // Succeeds when all succeed
    Promise.all(promises).then((results) => {
      /* ... */
    })

    // Succeeds when one finishes first
    Promise.race(promises).then((result) => {
      /* ... */
    })

### Converting other promises

    return Promise.resolve('result')
    return Promise.resolve(promise)
    return Promise.resolve(thenable)

    return Promise.reject('reason')

    Promise.resolve(result).then(() => {
      /* ... */
    })

`Promise.resolve(val)` will return a promise that resolves to the value given to it.

0 Comments for this cheatsheet. Write yours!