nodeify
v1.0.1
Published
Convert promised code to use node style callbacks
Downloads
533,777
Maintainers
Readme
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