Node Package Master

    util-callbackify
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0 • Public • Published

    util.callbackify

    A backport of util.callbackify for Node.js 6.0 and up.

    Installation

    npm install --save util-callbackify

    Usage

    const callbackify = require('util-callbackify')
     
    async function fn () {
      return 'Hello, World!'
    }
     
    const callbackFunction = callbackify(fn)
     
    fn((err, result) => {
      if (err) throw err
     
      console.log(result)
      //=> Hello, World!
    })

    API

    callbackify(original)

    • original <Function> An async function
    • Returns: <Function> a callback style function

    Takes an async function (or a function that returns a Promise) and returns a function following the error-first callback style, i.e. taking an (err, value) => ... callback as the last argument. In the callback, the first argument will be the rejection reason (or null if the Promise resolved), and the second argument will be the resolved value.

    The callback is executed asynchronously, and will have a limited stack trace. If the callback throws, the process will emit an 'uncaughtException' event, and if not handled will exit.

    Since null has a special meaning as the first argument to a callback, if a wrapped function rejects a Promise with a falsy value as a reason, the value is wrapped in an Error with the original value stored in a field named reason.

    function fn() {
      return Promise.reject(null)
    }
    const callbackFunction = util.callbackify(fn)
     
    callbackFunction((err, ret) => {
      // When the Promise was rejected with `null` it is wrapped with an Error and
      // the original value is stored in `reason`.
      err && err.hasOwnProperty('reason') && err.reason === null // true
    })

    Install

    npm i util-callbackify

    DownloadsWeekly Downloads

    11

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    8.6 kB

    Total Files

    4

    Last publish

    Collaborators

    • linusu