ajax中的Promise和回调函数,什么时候成功



现在我有一个这样的代码:

$.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() {
});
});

这是小提琴。

我不确定这种方式是否通用。

最新更新