Promisify a function call so users can call a function with a callback or get a promise
Promisify a function call so users can call a function with a callback or get a promise.
Promise so requires Node >= 4.0.npm install promisify-call
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); // FOOundefined | * | 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 |
Copyright 2015 Bojan D.
Licensed under the MIT License.