这实际上是一个很简单的问题-_-node
咱们如今都习惯了使用 promise
,可是仍是常常会碰到一些 callback
形式的 api
,那么就把它们也改形成 promise
吧。api
以 node
中的 fs.readFile
为例。promise
const fs = require('fs') const promisify = fn => { return function (path) { return new Promise((resolve, reject) => { fn.call(null, path, (err, data) => { if (err) { reject(err) } else { resolve(data) } }) }) } } const pReadFile = promisify(fs.readFile) pReadFile('./README.md') .then(data => { console.log(data.toString()) }) .catch(err => { console.log(err) }) async function test () { try { const data = await pReadFile('./README.md') console.log(data.toString()) } catch (err) { console.log(err) } } test()