当我使用$.when().done
时,该函数被调用两次而不是一次。我希望在函数及其所有代码完成后运行代码。而且我这样做成功......
function whenDone() {
alert("test")
}
$("button").on("click", function() {
whenDone();
$.when( whenDone() ).done(function() {
// DO OTHER STUFF
});
});
唯一的问题是whenDone()函数被调用了2次。如何阻止函数执行两次并在完成执行所有内容后仍然运行代码?
这支笔显示了我的意思。只需点击“按钮”http://codepen.io/anon/pen/YPMopN
即可答案 0 :(得分:4)
whenDone
不是异步函数,因此您不需要使用$.when
。它的代码执行完毕后才会返回。同步功能只需按顺序运行:
$("button").on("click", function() {
whenDone();
// Do other stuff
});
答案 1 :(得分:0)
您不需要whenDone();
,$.when
已经调用了该功能。