for循环中异步请求转同步
异步示例
两个是异步的你循环你的,我请求我的
因为回调函数会放到异步队列里面去执行
所以for循环结束,不代表所有请求都已经结束
转换同步方法(建议)
1.方法前加 async 关键字
2.调用接口前添加 await关键字
**async** getImsgeFile (peaPhoto) {
if (peaPhoto) {
var arr = peaPhoto.split(';')
for (var i in arr) {
var url = arr[i]
**await** imageView(url).then(res => {
var file = {}
file.url = window.URL.createObjectURL(res)
file.uid = 'vc-upload' + '-' + i
file.response = { code: 0, fileName: arr[i] }
this.fileList.push(file)
})
}
}
}
第二种方法:递归 依次处理的,如果任务多的话,他很费时间
第三种方法:类似promise的all方法,这样可以并发去处理
不建议
这样有可能造成阻塞