$.when().done() 在完成之前触发 done 函数
$.when().done() is firing the done function before when completes
我有这样一个页面:
$(document).ready(function() {
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall());
});
出于某种原因,finalCall()
与 $.when()
包围的三个调用同时触发。
我尝试调用对 finalCall()
函数的引用,如下所示:
$(document).ready(function() {
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall);
});
但即便如此,它仍然会在前 3 个完成之前触发该函数。
注意: 我没有在此处包括这些功能,因为它们不相关。我只需要知道为什么 finalCall()
函数会与 $.when()
函数同时触发。
谢谢。
$.when
根本不会调用您的回调。你自己做的:
// vv
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall());
// ^^
将其更改为
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).then(finalCall);
其中 函数 实际上被传递到 promise 方法中,它会起作用(假设你的 ajax 函数 return promises)。
我有这样一个页面:
$(document).ready(function() {
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall());
});
出于某种原因,finalCall()
与 $.when()
包围的三个调用同时触发。
我尝试调用对 finalCall()
函数的引用,如下所示:
$(document).ready(function() {
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall);
});
但即便如此,它仍然会在前 3 个完成之前触发该函数。
注意: 我没有在此处包括这些功能,因为它们不相关。我只需要知道为什么 finalCall()
函数会与 $.when()
函数同时触发。
谢谢。
$.when
根本不会调用您的回调。你自己做的:
// vv
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).done(finalCall());
// ^^
将其更改为
$.when(ajaxcall1(),ajaxcall2(),ajaxcall3()).then(finalCall);
其中 函数 实际上被传递到 promise 方法中,它会起作用(假设你的 ajax 函数 return promises)。