当前位置:网站首页>js在for循环中按照顺序响应请求
js在for循环中按照顺序响应请求
2022-08-09 08:54:00 【Your-Nikee】
在某些坑爹的小程序中,原型链并没有formData,只能使用他的uploadfile方式对图片进行上传,而且单次只能上传一张图片,要是我们想让这个上传的动作同步执行怎么办呢。
我们选中图片的时候会得到一个图片的列表比如
filePath:[
'https://assasass/123123.png',
'https://assasass/123124.png',
'https://assasass/123125.png'
]
三张图片。
上传的时候,你可能需要
for(let i in filePath){
uni.uploadFile({
//...
success:res=>{
//得到响应数据
},
fail:err=>{
//响应失败内容
}
})
}
但是这个时候,我们并不知道每次请求需要花费的时间,有可能在文件大小不一的情况下,第一次请求还没得到响应,第二次请求就已经响应成功了。
为了避免这个问题,我们可以:
const temp = [];
for(let i in filePath){
temp.push(
new Promise((resolve,reject)=>{
uni.uploadFile({
//...
success:res=>{
//得到响应数据
resolve(res)
},
fail:err=>{
//响应失败内容
reject(err)
}
})
})
)
}
将所有的请求先组装为一个promise装到列表中,再利用promise的all方式去执行他们。
Promise.all(temp).then(res=>{
console.log(res)
}).catch(err=>{
console.log(err)
})
这时候的res就是一个列表,一个根据你响应顺序执行的列表。
边栏推荐
猜你喜欢
Venture DAO 行业研报:宏观和经典案例分析、模式总结、未来建议
图像识别后将识别结果整理成列表,点击列表可跳转到搜索页面
【redis】使用redis实现简单的分布式锁,秒杀并发场景可用
加密技术和电子竞技如何促进彼此的发展
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置(二分经典题)
LAN技术-6MSTP
LAN Technology - 6MSTP
System transformation and subnetting
VoLTE基础自学系列 | IMS的业务触发机制
EMQ X message server learning record - prepare for the subsequent completion
随机推荐
UE4 RTS frame selection function implementation
leetcode 32. 最长有效括号 (困难)
小程序调用百度api实现图像识别
gin清晰简化版curd接口例子
[漏洞复现]CVE-2018-7490(路径遍历)
nyoj58 最少步数(DFS)
leetcode 36. 有效的数独(模拟题)
第五届蓝帽杯初赛 misc 赛后复现
【GNN】2022 G-Mixup: Graph Data Augmentation for Graph Classification
uniapp编译到小程序后丢失static文件夹问题
requests之模拟登录学习
ctfshow-web入门 文件上传篇部分题解
fastadmin图片上传方法改造
黑马2022最新redis课程笔记知识点(面试用)
nodeMCU(ESP8266)和RC522的接线图
requests爬取百度翻译
XCTF College War "Epidemic" Network Security Sharing Competition Misc wp
Shell programming loop statement and function
内存监控以及优化
ctf misc 图片题知识点