在 async/await 中,通常使用 try/catch 块来捕获错误,写的多了看起来也不太好看,有没有更简洁的方案呢
注: 以下部分写法是 vue 中的
第1种
直接使用 catch 处理错误
// getListApi为返回 promise的请求,以下为示例
const getListApi = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve([]);
}, 1000);
});
}
// 第1种写法
const res = await getListApi()
.catch((err) => {
console.log(err);
});
if (typeof res === 'undefined') {
return;
}
// 正常返回的数据处理
this.list = res;
第2种
主要使用了一个自定义的toFn 方法,方法接收一个 promise ,返回数组,数组第一项为异常数据,第二项为 promise 正常的返回数据,
// getListApi为返回 promise的请求,以下为示例
const getListApi = () => {
return new Promise((resolve) => {
setTimeout(() => {
resolve([]);
}, 1000);
});
}
const toFn = (promise) => {
return promise
.then((data) => {
return [null, data];
})
.catch((err) => [err]);
}
// 第2种写法
const getRequest = () => {
// 调用写法
const [err, data] = await this.toFn(
getListApi()
);
if (err) {
return false;
}
// 正常返回的数据处理
this.list = data;
return true;
}
ps
以上是网上借鉴的写法,如果大家有更多更好用的写法,欢迎留下评论
9 条评论
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。
《克莱莉塔》科幻片高清在线免费观看:https://www.jgz518.com/xingkong/77329.html
《大佬姐姐在身边》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/29055.html
《大佬姐姐在身边》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/29055.html
《陷入麻烦的女孩》恐怖片高清在线免费观看:https://www.jgz518.com/xingkong/99413.html
《克莱莉塔》科幻片高清在线免费观看:https://www.jgz518.com/xingkong/77329.html