JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 86
  • Score
    100M100P100Q70399F
  • License MIT

Convert a callback-based api to one that returns a promise

Package Exports

  • node-promisify

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-promisify) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-promisify

version status dependencies devDependencies

Convert a callback-based api to one that returns a promise.

NOTE:

  • Own properties are preserved. But other inherited properties such as name, length, toString, do not preserve.
  • Custom promise can be used instead of the native. But no polyfill is applied when your node version does not support promise.
  • Multiple values can be resolved when the argc option is specified.

Example

var promisify = require('../')

function async(a, b, c, d, cb) {
  process.nextTick(function () {
    cb(null, a + b, a + b + c, a + b + c + d)
  })
}

async.sync = function (a, b) {
  return a + b
}

var promisified = promisify(async)

console.log('Sync sum:', promisified.sync(1, 2))
promisified(1, 2, 3, 4)
  .then(function (sum) {
    console.log('Async sum:', sum)
  })

promisify(async, 2)(1, 2, 3, 4)
  .then(function (sums) {
    console.log('Two sums:', sums)
  })

promisify(async, -1)(1, 2, 3, 4)
  .then(function (sums) {
    console.log('All sums:', sums)
  })

output:

⌘ node example/sums.js
Sync sum: 3
Async sum: 3
Two sums: [ 3, 6 ]
All sums: [ 3, 6, 10 ]

pfn = promisify(fn, opts)

Return a new function which returns a promise.

Sugar: pfn = promisify(fn, argc), pfn = promisify(fn, promise)

fn

The async function to be promisified.

Type: Function

Signature: fn(arg1, arg2, ..., done)

opts

promise

Specify a custom promise constructor.

Type: Function

argc

Specify the number of values to be resolved.

Type: Number

Default: null

When specified, the returned promise always resolve to an array. If not specified, only the first value is resolved. To resolve all possible values, specify a negative argc.