"Fossies" - the Fresh Open Source Software Archive

Member "node-v12.18.4-win-x64/node_modules/npm/node_modules/es6-promisify/README.md" (14 Feb 2020, 1966 Bytes) of package /windows/www/node-v12.18.4-win-x64.zip:

As a special service "Fossies" has tried to format the requested source page into HTML format (assuming markdown format). Alternatively you can here view or download the uninterpreted source code file. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.

Travis CI


Converts callback-based functions to Promise-based functions.


Install with npm

npm install --save es6-promisify


"use strict";

// Declare variables
const promisify = require("es6-promisify");
const fs = require("fs");

// Convert the stat function
const stat = promisify(fs.stat);

// Now usable as a promise!
stat("example.txt").then(function (stats) {
    console.log("Got stats", stats);
}).catch(function (err) {
    console.error("Yikes!", err);

Promisify methods

"use strict";

// Declare variables
const promisify = require("es6-promisify");
const redis = require("redis").createClient(6379, "localhost");

// Create a promise-based version of send_command
const client = promisify(redis.send_command, redis);

// Send commands to redis and get a promise back
client("ping").then(function (pong) {
    console.log("Got", pong);
}).catch(function (err) {
    console.error("Unexpected error", err);
}).then(function () {

Handle callback multiple arguments

"use strict";

// Declare functions
function test(cb) {
    return cb(undefined, 1, 2, 3);

// Declare variables
const promisify = require("es6-promisify");

// Create promise-based version of test
const single = promisify(test);
const multi = promisify(test, {multiArgs: true});

// Discards additional arguments
single().then(function (result) {
    console.log(result); // 1

// Returns all arguments as an array
multi().then(function (result) {
    console.log(result); // [1, 2, 3]


Test with nodeunit

$ npm test

Published under the MIT License.