我们可以快速的将node的api方法转化成promise,核心原理就是借助了error-first的特性。在内部手动处理错误
function promisify(fn){
return function (...args) {
return new Promise((resolve,reject)=>{
fn(...args,function (err,data) {
if(err) reject();
resolve(data);
})
});
}
}
let read = promisify(fs.readFile);