$ npm install promiseback
Accept an optional node-style callback, and also return a spec-compliant Promise!
var promiseback = require('promiseback');
var callback = function (err, value) {};
/* without a promise: */
promiseback(callback);
/*
- will throw if `callback` is not a function
- returns a "deferred"
- has resolve/reject methods, and `promise` property
- will call `callback` as expected when deferred is resolved
*/
/* with a promise: */
promiseback(promise, callback);
/*
- will throw if `callback` is truthy and not a function
- `promise` will be converted to a Promise, so you can pass a value as well
- returns a Promise
- will call `callback` as expected when the promise is fulfilled
*/
Using deferreds:
var promiseback = require('promiseback');
module.exports = function doSomethingCool(thing, callback) {
// If callback is not provided, this code will simply return a normal promise.
// If callback is provided but is not a function, promiseback will immediately throw a TypeError.
// "deferred" is an object with `reject/resolve` methods, and a `promise` property.
var deferred = promiseback(callback);
if (thing) {
deferred.resolve(thing);
} else {
deferred.reject(thing);
}
return deferred.promise;
};
Using a straight promise, when you can get it from somewhere else:
var promiseback = require('promiseback');
module.exports = function doSomethingCool(thing, callback) {
// If callback is not provided, this code will simply return a normal promise.
// If callback is provided but is not a function, promiseback will immediately throw a TypeError.
var newThingPromise = makeNewThing(thing);
return promiseback(newThingPromise, callback);
};
Simply clone the repo, npm install
, and run npm test
© 2010 - cnpmjs.org x YWFE | Home | YWFE