这其实是一个很简单的问题-_-
我们现在都习惯了使用 promise
,但是还是经常会碰到一些 callback
形式的 api
,那么就把它们也改造成 promise
吧。
以 node
中的 fs.readFile
为例。
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()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。