thenify

NPM version Build status Test coverage Dependency Status License Downloads

Promisify a callback-based function using any-promise.

An added benefit is that thrown errors in that async function will be caught by the promise!

API

fn = thenify(fn, options)

Promisifies a function.

Options

options are optional.

```js var thenify = require('thenify');

var somethingAsync = thenify(function somethingAsync(a, b, c, callback) { callback(null, a, b, c); }); ```

```js var thenify = require('thenify');

var somethingAsync = thenify(function somethingAsync(a, b, c, callback) { callback(null, a, b, c); }, { withCallback: true });

// somethingAsync(a, b, c).then(onFulfilled).catch(onRejected); // somethingAsync(a, b, c, function () {}); ```

or use thenify.withCallback()

```js var thenify = require('thenify').withCallback;

var somethingAsync = thenify(function somethingAsync(a, b, c, callback) { callback(null, a, b, c); });

// somethingAsync(a, b, c).then(onFulfilled).catch(onRejected); // somethingAsync(a, b, c, function () {}); ```

```js var thenify = require('thenify');

var promise = thenify(function (callback) { callback(null, 1, 2, 3); }, { multiArgs: false });

// promise().then(function onFulfilled(value) { // assert.equal(value, 1); // }); ```

```js var thenify = require('thenify');

var promise = thenify(function (callback) { callback(null, 1, 2, 3); }, { multiArgs: [ 'one', 'tow', 'three' ] });

// promise().then(function onFulfilled(value) { // assert.deepEqual(value, { // one: 1, // tow: 2, // three: 3 // }); // }); ```