Js不使用try catch,优雅地处理await报错的情况
Posted 张长长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js不使用try catch,优雅地处理await报错的情况相关的知识,希望对你有一定的参考价值。
const res = await jiekou(params);
if(res.code === 0) {
//执行代码
} else {
// 错误处理
}
类似场景景:如果jiekou报500,那不会走到下面的if判断,那相应的代码都不会执行。
解决方式:
// 写一个方法去执行原本的操作,如果有错误返回[err],没有错误返回[null, res]
function getAwaitResult(promise) {
return promise.then(res => {
return [null, res];
})
.catch(err => [err]);
}
使用
const [err, res] = await getAwaitResult(jiekou(params));
if (err) {
// 例如此处需要不显示loading
this.loading = false;
this.$message.error(String(err));
return;
}
// 后面执行res的正常操作就好
if (res.code === 0) {
this.imageList = res.data.list;
this.total = res.data.total;
} else {
this.$message.error(res.msg);
}
参考:https://blog.grossman.io/how-...
以上是关于Js不使用try catch,优雅地处理await报错的情况的主要内容,如果未能解决你的问题,请参考以下文章
从不用 try-catch 实现的 async/await 语法说错误处理
优雅地处理 `await`ed Javascript Promise 上的拒绝