现在我有一个这样的代码:
$.ajax({
url: apiUrl + valueToCheck,
data: {
format: 'json'
},
error: function () {
},
dataType: 'json',
success: function (data) {
checkAgainstDBHelperWH(data, valueToCheck);
},
type: 'GET'
});
如果我没有记错的话,checkAgainstDBHelperWH
就是一个回调函数。一旦服务器发回对该特定HTTP/ajax请求的响应,该函数就会执行。
我想试着写下面这样的东西,但我不知道效果是什么,也不知道它是否合乎逻辑:
var request = $.ajax({
url: apiUrl + valueToCheck,
data: {
format: 'json'
},
error: function () {
},
dataType: 'json',
success: function (data) {
checkAgainstDBHelperWH(data, valueToCheck);
},
type: 'GET'
})
arrayOfPromises.push(request);
$.when.apply(null, arrayOfPromises).done(function () {
//...some javascript here
});
我想了解回调函数checkAgainstDBHelperWH
完成后是否触发了.done(function ()
?或者我上面试图写的内容与ajax的工作方式不一致?
谢谢!
我测试了它,只有当函数(在本例中为"checkAgainstDBHelperWH"(不调用ajax时,代码才能工作。如果您想等待完成内部ajax进程,请使用then((并返回内部ajax。
var ajaxs =
$.get("xxx").then(function() {
return $.get("yyy").done(function() {
});
});
这是小提琴。
我不确定这种方式是否通用。