‚̧Numeric Production Mechanism
    Have ideas to improve npm?Join in the discussion! ¬Ľ

    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.

    Install

    npm i promisificator

    DownloadsWeekly Downloads

    137

    Version

    4.2.0

    License

    MIT

    Unpacked Size

    18 kB

    Total Files

    13

    Last publish

    Collaborators

    • avatar