@beenotung/tslib
Version:
utils library in Typescript
46 lines (45 loc) • 981 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.promisify = promisify;
exports.genPromiseCallback = genPromiseCallback;
exports.runFinally = runFinally;
async function promisify(f, args = []) {
return new Promise((resolve, reject) => {
f(...args, (err, res) => {
if (err) {
reject(err);
}
else {
resolve(res);
}
});
});
}
function genPromiseCallback() {
let resolve;
let reject;
const p = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
const cb = (err, res) => {
if (err) {
reject(err);
}
else {
resolve(res);
}
};
return Object.assign(cb, { promise: p });
}
async function runFinally(p, cb) {
try {
return await p;
}
catch (e) {
return Promise.reject(e);
}
finally {
cb();
}
}