尝试使用 $.Deferreds 代替我之前使用的 setTimeOut。我遇到了一个问题,因为 writer() 实际上并没有完成,因为 $.each 在调用 printer() 时仍在循环。
我还没有看到带有循环的 $.Deferreds 的示例。显然,以下内容是错误的,我打赌这与决心有关 - 任何帮助将不胜感激。
$.when( writer() ).done(function() {
printer();
});
function writer(){
var deferred = new $.Deferred();
if(x){
$("a").each(function () {...});
}
if(y){
$("img").each(function () {...});
}
if(z){
$("div").each(function () {...});
}
deferred.resolve();
return deferred.promise();
}
function printer(){...}