cheatsheets/bluebird.md

1.3 KiB

title layout
bluebird.js default

Creating promises

var Promise = require("bluebird");

new Promise(function (ok, err) {
  doStuff(function () {
    if (success)
      ok();
    else
      err();
  });
})

Consuming promises

promise
  .then(okFn, errFn)
  .spread(okFn, errFn)
  .catch(errFn)
  .catch(TypeError, errFn)
  .finally(fn)

Handling simultaneous promises

Via Arrays

var promises = [
  promise1(), promise2(), ...
]

Promise.all(promises)     // succeeds when all succeed
  .then(...)
Promise.any(promises)     // succeeds if one succeeds first
  .then(...)

or Objects

Promise.props({
  photos: get('photos'),
  posts: get('posts')
})
.then(function (res) {
  res.photos
  res.posts
})

Turn foreign promises into Bluebird promises

Promise.resolve($.get('http://google.com'))
.then(...)

Consuming arrays

getFiles()
  .map(function (e) { ... })
  .each(function (e) { ... });

Chain of promises

Promise.try(function () {
  if (err) throw new Error("boo");
  return result;
});

### Working with node-style functions

```js
var readFile = Promise.promisify(fs.readFile);
var fs = Promise.promisifyAll(require('fs'));

References