Nocturnal Pumpkin Maelstrom

    nodeify

    1.0.1 • Public • Published

    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

    Install

    npm i nodeify

    DownloadsWeekly Downloads

    98,273

    Version

    1.0.1

    License

    MIT

    Last publish

    Collaborators

    • forbeslindesay