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
后,
完成
将触发。