Convert promised code to use node style callbacks
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test Version 1.0.0 Feb 28, 2013
.gitignore Version 1.0.0 Feb 28, 2013
.travis.yml Create .travis.yml Feb 28, 2013
LICENSE Create LICENSE Apr 17, 2014
README.md Update badges Dec 23, 2015
index.js Fix setImmediate handling Aug 2, 2015
package.json Release 1.0.1 Feb 26, 2017

README.md

Build Status

Nodeify

Convert promised code to use node style callbacks. If no callback is provided it will just return the original promise.

Installation

Server:

$ npm install nodeify

Usage

Functional

Call nodeify directly passing the promise and an optional callback as arguments. If a callback is provided it will be called as callback(error, result). If callback is not a function, promise is returned.

var nodeify = require('nodeify');

function myAsyncMethod(arg, callback) {
  return nodeify(myPromiseMethod(arg), callback);
}

Constructor / Method

The nodeify.Promise constructor returns a promise with a .nodeify method which behaves just like the functional version above except that the first argument is implicitly this.

var Promise = require('nodeify').Promise;

function myAsyncMethod(arg, callback) {
  return new Promise(function (resolver) {
    //do async work
  })
  .nodeify(callback);
}

Extend

Extend(promise)

Takes a promise and extends it to support the .nodeify method. It will still support the nodeify method after calls to .then.

var Promise = require('promise');
var nodeify = require('nodeify');

function myAsyncMethod(arg, callback) {
  return nodeify.extend(myPromiseMethod(arg))
    .nodeify(callback);
}

Extend(PromiseConstructor)

Takes a PromiseConstructor and extends it to support the .nodeify method.

var PromiseConstructor = require('promise-constructor-used-by-my-promise-method');

require('nodeify').extend(PromiseConstructor);

function myAsyncMethod(arg, callback) {
  return myPromiseMethod(arg).nodeify(callback);
}

Extend()

Extends the default promise constructor (returned by calling require('promise')) and extends it to support .nodeify.

require('nodeify').extend();

function myAsyncMethod(arg, callback) {
  //assuming myPromiseMethod uses `promise` as its promise library
  return myPromiseMethod(arg).nodeify(callback);
}

Licence

MIT

viewcount