当我们处理 async/await 的时候是不是不好做 throw err 抛错处理?
记得看过一篇文章,将其最佳处理方案摘抄了下来方便使用
// 需要处理的async 方法
(async () => {
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('fetch data is me')
}, 1000)
})
}
// 抽离成公共方法用来处理async
const awaitWrap = (promise) => {
return promise
.then(data => [null, data])
.catch(err => [err, null])
}
//使用
const [err, data] = await awaitWrap(fetchData())
console.log('err', err)
console.log('data', data)
// err null
// data fetch data is me
})()
复制代码