使用async/await异步处理多张图片同时上传到服务器

本文介绍了如何在前端项目中利用async/await处理用户多张图片的异步上传。在用户完成图片选择后,一次性将所有图片数据发送到服务器。通过将图片数据存储在数组中,待全部选择完毕后进行批量上传。
摘要由CSDN通过智能技术生成

在项目上遇到这样的需求,就是问题反馈,允许用户上传图片。

因为是多图片同时上传,而且考虑到用户可能会更换已经选择的图片,所以没办法做到用户input[type="file"]选择一次图片就上传图片到服务器,必须是等到用户选择完毕后再一起上传。

比如用户这时候选择了5张图片,前端代码方面每次当用户选择一张图片,就把图片数据存入声明的 files 数组中。

<input id="upload-img" class="ipt-file" type="file" onchange="showImg" />
<button onclick="submit">提交</button>
var files  = []
function showImg() {
    let el = document.querySelector("#upload-img");
    files.push(el.files[0]);
}

// 带有 async 的函数会返回一个 Promise 对象,我们可以执行此函数,然后用then()添加回调函数
async function beforeSubmit() {
    let resArr = []; // 声明数组来存放请求返回的数据
    // 循环遍历 files 数组,每次循环都使用 await 关键字处理异步请求,这样我们的异步请求就会按顺序进行,只有等到 await 后面的异步操作完成,才会接着函数体内后面的代码。
    for (let i = 0; i &l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值