请有人帮助我; 我正在使用for循环,循环遍历数组中的每个项目(文档名称),每个项目调用一个上传相应文档的函数。
我的问题是,在文档上传完成之前,for循环已移至下一个项目。在处理下一个数组项之前,如何让for循环等到被调用函数完成?
非常感谢任何帮助。
我的代码;
fileNameArray = [doc1.doc, doc2.doc, doc3.doc];
fileArrayLength = fileNameArray.length;
loop = 0;
for (fa = 0; fa < fileArrayLength; fa++) {
if (loop == fa) {
multiupload()
} else {
console.log("not ready for " + fileNameArray[fa]);
};
};
};
function multiupload(fileName) {
fileName = fileNameArray[fa];
//code here uploads document
loop++;
};
修改 我使用以下代码完成了这项工作;
function promiseFun() {
let myPromise = new Promise((resolve, reject) => {
multiUpload(fileNameArray[index]);
function multiUpload() {
//my upload code
resolve("Success!");
};
});
myPromise.then((successMessage) => {
index++;
if (index < fileArrayLength) {
promiseFun();
};
});
};
答案 0 :(得分:0)
您可以使用以下承诺尝试使用
index= 0;
multiUpload(){
var Promise = new Promise(function(resolve, reject) {
multiuploadPromise(fileNameArray[index]);
}
Promise.then(function (data) {
index++;
if(index < fileArrayLength){
multiUpload();
}
}
}