假設我需要對文件進行同步上傳。相繼。 我發現這個stackoverflow的話題。而且修改了代碼:jQuery承諾模擬數組上的函數同步調用
var arr = ["file1", "file2", "file3"];
var d = $.Deferred().resolve();
while (arr.length > 0) {
d = d.then(uploadFile(arr.shift()));
}
function uploadFile(file){
var d = $.Deferred();
setTimeout(function(){ console.log("Uploading file:"+file); d.resolve(""); },1000);
return d.promise();
}
但我還是讓他們所有異步調用,但超時1000
這裏是提琴:fiddle
SOLUTION: 大感謝名單菲利克斯。這裏是工作fiddle
您必須將函數傳遞給'.then',而不是承諾。 –