我在JS中上传到OBS的时候 因为FileReader onload是异步请求 所以说我上传的文件顺序会有问题
通过 var dicomList = event.target.files;直接获取的所有文件 然后在for循环这个数组
for (var i = 0; i < dicomList.length; i++) {
var file = dicomList[i];
var files = dicomList[i];
let reader = new FileReader();
let fileName = file.name;
fruits.push(files);
reader.readAsArrayBuffer(file);
reader.onload = function(file) {
.........
在循环里面使用的onload方法 在这个方法里面上传的OBS 所以会出现文件上传的顺序不一致的问题
不能直接for,for的话异步操作无法控制顺序
做成一个函数循环调用,可以参考这个问题中我的回复,类似,只是一个是ajax,题主的是filereader
https://ask.csdn.net/questions/7480804
可以通过函数递归的方法,第一个文件上传返回再传第二个文件,判断所有文件都上传就结束
var files = dicomList,i=-1;
function upload(){
i++;
if(dicomList[i]){
var file = dicomList[i];
......
upload();
}else{
console.log(‘上传成功’)
}
}
upload();