function promisify(asyncFunc) {
return function(...args) {
return new Promise((resolve, reject) => {
args.push(function callback(err, ...values) {
if (err) {
return reject(err);
}
return resolve(...values);
});
asyncFunc.call(this, ...args);
});
}
}
const fs = require('fs');
const fsp = new Proxy(fs, {
get(target, key) {
return promisify(target[key]);
}
})
async function test() {
const data = await fsp.readFile('./aaa.js', 'utf-8');
await fsp.writeFile('./aaa.txt', data);
}
test();
将error-fisrt风格的异步函数promise化
最新推荐文章于 2023-10-28 10:32:49 发布