Skip to content

Promisify a function call so users can call a function with a callback or get a promise

License

Notifications You must be signed in to change notification settings

bojand/promisify-call

Repository files navigation

promisify-call

npm version build status

Promisify a function call so users can call a function with a callback or get a promise.

  • 2.0 works only with native Promise so requires Node >= 4.0.
  • 1.0 uses Bluebird and should work with older Node.js

Installation

npm install promisify-call

Usage

function _uppercase(param, fn) {
  setTimeout(() => {
    return fn(null, param.toUpperCase());
  }, 50);
}

function uppercase(param, fn) {
  return promisifyCall(this, _uppercase, ...arguments);
}

// now we can call it using callback-style
uppercase('foo', (err, res) => {
  console.log(res); // FOO
});

// OR promise style
const res = await uppercase('foo');
console.log(res); // FOO

API Reference

promisifyCall(ctx, fn, args) ⇒ undefined | * | Promise

Promisifies the call to fn if appropriate given the arguments. Calls the function fn either using callback style if last argument is a function. If last argument is not a function, fn is called returning a promise. This lets you create API that can be called in either fashions.

Kind: global function
Returns: undefined | * | Promise - Promise if promisified

Param Type Description
ctx Object context / this
fn function The function to call
args arguments Arguments

License

Copyright 2015 Bojan D.

Licensed under the MIT License.

About

Promisify a function call so users can call a function with a callback or get a promise

Resources

License

Stars

Watchers

Forks

Packages

No packages published