Javascript ajax中的承诺和回调函数,何时成功?
现在我有一个这样的代码:Javascript ajax中的承诺和回调函数,何时成功?,javascript,jquery,ajax,Javascript,Jquery,Ajax,现在我有一个这样的代码: $.ajax({ url: apiUrl + valueToCheck, data: { format: 'json' }, error: function () { }, dataType: 'json', success: function (data) {
$.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(函数()
),或者我试图在上面写的任何东西都与ajax的工作方式不一致
谢谢!我对它进行了测试,只有当函数(在本例中为“checkAgainstDBHelperWH”)不调用ajax时,您的代码才能工作。 如果要等待完成内部ajax过程,请使用then()并返回内部ajax
var ajaxs =
$.get("xxx").then(function() {
return $.get("yyy").done(function() {
});
});
这是你的电话号码
我不确定这种方式是否通用。不能保证在代码中执行
checkAgainstDBHelperWH
后,完成
将触发。