基于响应重复同步AJAX调用

时间:2016-04-12 20:15:18

标签: javascript jquery ajax promise

我知道有很多关于如何进行同步AJAX调用的例子(使用deferred promises),但我的问题有点不同。这是我想要做的事情

  1. 进行AJAX通话
  2. 如果响应包含某个值,则再次循环并使用不同的参数进行另一个AJAX调用。参数值将取决于第一个AJAX调用的响应,因此必须在进行第二次AJAX调用之前等待。
  3. 如果响应包含(exit = true),则退出循环。
  4. 据我所知,如果服务器永远不会返回条件3,那么我们将处于无限循环中。

    如果AJAX调用的响应包含某个值,我如何继续循环AJAX调用?

1 个答案:

答案 0 :(得分:0)

将代码放入命名函数中进行AJAX调用。 AJAX的回调函数检查响应是否包含exit = true。如果没有,它再次调用named函数以使用更新的函数进行下一次AJAX调用。

function call_ajax(params ...) {
    $.ajax({
        url: "url",
        data: { whatever },
        dataType: 'json'
        success: function(response) {
            if (!response.exit) {
                // calculate new parameters
                call_ajax(new_params ...);
            }
        }
    })
}