async/await的错误处理
一般情况下 async/await 在错误处理方面,主要使用 try/catch,像这样
const fetchData = () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve('fetch data is me') }, 1000) }) } async demo() => { try { const data = await fetchData() console.log('data is ->', data) } catch(err) { console.log('err is ->', err) }
async/await 本质就是 promise 的语法糖,既然是 promise 那么就可以使用 then 函数了
(async () => { const fetchData = () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve('fetch data is me') }, 1000) }) } const data = await fetchData().then(data => data ).catch(err => err) console.log(data) })()
将对 await 处理的方法抽离成公共的方法,在使用 await 调用 awaitWrap 这样的方法是不是更优雅了呢。如果使用 typescript 实现大概是这个样子
// 抽离成公共方法 const awaitWrap = (promise) => { return promise .then(data => [data, null]) .catch(err => [null, err]) } let [data, err] = await awaitWrap(http.request('/classic/latest')) console.log(err, data)
参考文章:https://blog.csdn.net/q3254421/article/details/88878288
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接