Wrap Node-callback functions to return Promises.

Stable: 0.1.3

Maintained by Tim Branyen @tbranyen.

Wraps Node modules, functions, and methods written in the Node-callback style to return Promises.

npm install promisify-node

Wrap entire Node modules recursively:

var promisify = require("promisify-node");
var fs = promisify("fs");
// This function has been identified as an asynchronous function so it has 
// been automatically wrapped. 
fs.readFile("/etc/passwd").then(function(contents) {

Wrap a single function:

var promisify = require("promisify-node");
function async(callback) {
  callback(null, true);
// Convert the function to return a Promise. 
var wrap = promisify(async);
// Invoke the newly wrapped function. 
wrap().then(function(value) {
  console.log(value === true);

Wrap a method on an Object:

var promisify = require("promisify-node");
var myObj = {
  myMethodfunction(abcb) {
    cb(a, b);
// No need to return anything as the methods will be replaced on the object. 
// Intentionally cause a failure by passing an object and inspect the message. 
myObj.myMethod({ msg: "Failure!" }, null).then(null, function(err) {

Run the tests after installing dependencies with:

npm test