我正在尝试使用jquery $.when()
函数来防止在ajax完成之前触发某些函数。我有以下函数,但延迟函数仍然与ajax调用同时触发。
代码:
$.when(cdeckDataStore("param1","param2","param3")).done([function1("param1"),function2("param1")]);
function cdeckDataStore(action,step,checked) {
return $.ajax({
type: "POST",
datatype: "json",
url: "url/to/api",
data: {"action":action,"step":step,"data": checked},
success: function(data) {
console.log("success");
}
});
}
根据文档function1
和function2
应该等到ajax返回为止。
答案 0 :(得分:1)
不,根据文档,传递给.done()
的引用将在$.when()
完成后调用。
而您正在调用您的函数function1("param1")
您可以使用以下内容传递对函数的引用:
function1.bind(this, 'param1')