node-promisify
Convert a callback-based api to one that returns a promise
Last updated 5 years ago by zoubin .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install node-promisify 
SYNC missed versions from official npm registry.

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.

Current Tags

  • 1.2.0                                ...           latest (5 years ago)

8 Versions

  • 1.2.0                                ...           5 years ago
  • 1.1.0                                ...           5 years ago
  • 1.0.0                                ...           5 years ago
  • 0.2.2                                ...           5 years ago
  • 0.2.1                                ...           5 years ago
  • 0.2.0                                ...           5 years ago
  • 0.1.2                                ...           6 years ago
  • 0.1.0                                ...           6 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 3
Dependencies (1)
Dev Dependencies (2)

Copyright 2014 - 2016 © taobao.org |