promisificator

4.2.0 • Public • Published

Actions Status

promisificator

Returns a promise and a callback that will fulfill the promise.

Examples

1. Use the callback in an async function to resolve 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;
});

2. Allow a function to accept a callback or return a promise

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);
});

3. Turn a callback function into a promise

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;
});

Options

rejectOnError

Default: true

Reject the promise if the first argument of the callback is truthy.

alwaysReturnArray

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.

useNextTick

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.

callbackArg

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.

Dependents (1)

Package Sidebar

Install

npm i promisificator

Weekly Downloads

2

Version

4.2.0

License

MIT

Unpacked Size

18 kB

Total Files

13

Last publish

Collaborators

  • tonybrix