es6-promisify
Converts callback-based functions to Promises, using a boilerplate callback function.
Install
Install with npm
npm install es6-promisify
Example
const {promisify} = require("es6-promisify");
const fs = require("fs");
const stat = promisify(fs.stat);
try {
const stats = await stat("example.txt");
console.log("Got stats", stats);
} catch (err) {
console.error("Yikes!", err);
}
Promisify methods
const {promisify} = require("es6-promisify");
const redis = require("redis").createClient(6379, "localhost");
const client = promisify(redis.send_command.bind(redis));
try {
const pong = await client.ping();
console.log("Got", pong);
} catch (err) {
console.error("Unexpected error", err);
} finally {
redis.quit();
}
Handle multiple callback arguments, with named parameters
const {promisify} = require("es6-promisify");
function test(cb) {
return cb(undefined, 1, 2, 3);
}
test[promisify.argumentNames] = ["one", "two", "three"];
const multi = promisify(test);
const result = await multi();
console.log(result);
Provide your own Promise implementation
const {promisify} = require("es6-promisify");
promisify.Promise = require("bluebird");
const test = promisify(cb => cb(undefined, "test"));
const result = await test();
console.log(result);
Tests
Test with tape
$ npm test
Published under the MIT License.