JSPM

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

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

Package Exports

  • promisify-call

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 (promisify-call) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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.