villa
Version:
Promise utilities for async/await-ready environment.
48 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Call a Node.js-style asynchronous function and return a correspondent
* promise.
*/
function call(fn) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return new Promise(function (resolve, reject) {
fn.call.apply(fn, [undefined].concat(args, [function (error, value) {
if (error) {
reject(error);
}
else {
resolve(value);
}
}]));
});
}
exports.call = call;
/**
* Wrap a Node.js-style asynchronous function to a function that returns
* promise.
*/
function async(fn) {
return function () {
var _this = this;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return new Promise(function (resolve, reject) {
fn.call.apply(fn, [_this].concat(args, [function (error, value) {
if (error) {
reject(error);
}
else {
resolve(value);
}
}]));
});
};
}
exports.async = async;
//# sourceMappingURL=function.js.map