vue中aixos如何循环单条数据请求?
问题描述
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....
}
你期待的结果是什么?实际看到的错误信息又是什么?
如何解决同步请求,或者更好的方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
用async/await很容易搞
Promise.all了解一下
Promise.all
满足不了你的需求这样写应该可以
更新:噢,我知道了,应该是顺序的问题,那么我觉得楼上的
async/await
应该可以菜鸡我觉得好像。。没毛病啊。。就是这里是不是该这么写:
Promise.all应该不太合适,按顺序的话Promise.then更合适