导出时错误捕获
Posted 吴吴吴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导出时错误捕获相关的知识,希望对你有一定的参考价值。
背景:在实现导出功能的时候,后端返回的是二进制文件流,当导出失败有报错信息时发现无法提示到后台返回的message,于是就找到了FileReader来解决这个问题。
1.了解FileReader定义
FileReader允许Web程序读取文件,所以可以通过这个来转化Blob数据。
接下来,看是如何实现的
exportReport () {
var params = this.$refs.query.handleParams();
afterSale.downloadLocalFirstInsRateList({
filters: params,
pageIndex: this.pageNum,
pageSize: this.pageSize,
sorts: []
}).then(res => {
let that = this;
this.sameParams = res;
let reader = new FileReader();
reader.readAsText(res);
reader.onload = function (res) {
if (res.target.result.indexOf(\'statusCode\') !== -1) {
if (JSON.parse(res.target.result).statusCode === 500) {
that.$Message.error(JSON.parse(res.target.result).message);
}
} else {
const fileName = \'本地首保率分析报表.xlsx\';
const link = document.createElement(\'a\');
link.href = window.URL.createObjectURL(that.sameParams)
link.download = fileName;
link.click()
window.URL.revokeObjectURL(link.href);
}
};
}).catch(error => {
console.log(error);
this.loading = false;
});
},
首先第一步:new一个FileReader对象
第二步:调用FileReader的方法 readAsText
第三步:回调函数onload 读取成功时 获取res.target.result代表返回的结果,此时就将Blob数据转换成了json格式的数据。
以上是关于导出时错误捕获的主要内容,如果未能解决你的问题,请参考以下文章
从片段捕获图像时从不调用onActivityResult [重复]