Returns a promise and a callback that will fullfill the promise.
MIT License
Returns a promise
and a callback
that will fulfill the promise
.
const fs = require("fs");
const promisificator = require("promisificator");
const {
promise,
callback,
} = promisificator({rejectOnError: true});
//`callback` can be passed to any async function that takes a callback
fs.readFile("/etc/password", callback);
//`promise` will be fulfilled once the callback is called
promise.then((data) => {
console.log(data);
}, (err) => {
throw err;
});
const promisificator = require("promisificator");
function myFunc(arg, cb) {
const {
promise,
callback,
} = promisificator(cb);
// `cb` will be wrapped in `process.nextTick` so it won't be
// called immediately if it is a callback
callback(null, arg);
// if `cb` is a function `promise` will be undefined
return promise;
}
myFunc("promise").then(console.log, console.error);
myFunc("callback", (err, result) => {
if (err) {
return console.error(err);
}
console.log(result);
});
const fs = require("fs");
const { promisify } = require("promisificator");
//`promisify(fs.readFile)` will return a function that returns a promise
promisify(fs.readFile, {callbackArg: -1})("/etc/password").then((data) => {
console.log(data);
}, (err) => {
throw err;
});
Default: true
Reject the promise if the first argument of the callback is truthy.
Default: false
Resolve the promise with an array of values if there is only one argument.
By default Promisificator will return an array only if there is more than one non-error argument sent to the callback.
Default: true
If a callback is provided use process.nextTick
when calling the callback to ensure that it is called asynchronously.
If this is set to false
the callback can be called before the function returns, which might lead to unexpected results.
Default: -1
The argument index to place the callback for promisify
.
Negative values will be from the end of the function arguments. Positive values start at 0.