问题描述
Vue项目,后台给一个数据接口返回图片名称,然后我根据这个图片名称,请求下载图片接口,请求的要求是一次只能请求一个图片,请求返回图片base64格式。
问题出现的环境背景及自己尝试过哪些方法
如果是批量下载还好操作,但是我需要的图片有多张,但是一次只能请求一次,我想过是for循环,把请求过来的base64字符串push到数组中,但是axios好像是异步的,而且我感觉这种写有点不对。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
data数据
data() {
return {
imgs:[],
imglist: ["0522ION3.jpeg", "0522BJD7.jpg"].//请求图片路径
};
},
请求方法
downImg() {
for (let item of this.imglist) {
const fd = new FormData();
fd.append("path", item);
downloadBase64(fd)
.then(res => {
if (res.status == 200) {
let imglist = [];
imglist.push(res.data.code);
this.imgs = imglist;
console.log(imglist);
} else {
this.$message({
message: res.content,
type: "warning"
});
}
})
.catch(res => {
console.log(res);
});
}
},
单个请求后台返图片base64码
{
"status": 200,
"code": "",
"msg": "操作成功!",
"remark": "",
"data": {
"code": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAw....
}
你期待的结果是什么?实际看到的错误信息又是什么?
如何解决同步请求,或者更好的方法?
用async/await很容易搞