把callback形式的异步函数promisify化:
function promisify(fn) {
return function(...args) {
return new Promise((resolve, reject) => {
fn.call(this, ...args, (err, content) => {
if (err) {
reject(err)
}
resolve(content)
})
})
}
}
const {readFile} = require('fs')
let fn = promisify(readFile)
fn('./index.js', 'utf8')
.then(res => console.log(res))
.catch(err => console.log(err))