【发布时间】:2016-05-31 14:01:13
【问题描述】:
假设我需要同步上传文件。相继。 我发现了这个stackoverflow 主题。并修改了代码:
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
解决方案: 非常感谢菲利克斯。这是工作fiddle
【问题讨论】:
-
你必须将一个函数传递给
.then,而不是一个promise。
标签: javascript jquery promise jquery-deferred