javascript - 进行两个系列的异步调用,中间有延迟

标签 javascript ajax asynchronous

我需要进行一系列 AJAX 调用(对不同的 URL),然后仅在所有调用完成后才进行另一系列调用。到目前为止我的代码:

(function (delay) {
    var toDo = 10, // for example
    curr = 0;
    process = setInterval(function() {
        // do a call
        // blahblahblah
        // then:
        if(curr === toDo) {
            clearInterval(process);
        } else {
            curr++;
        }
    }, delay);
})(2000);
// repeat for the 2nd series, but this code will execute immediately since they are async

我使用这种格式而不是简单的 for 循环的原因是我需要在每次调用之间暂停。在第一个系列全部完成之前,我无法启动第二个系列,因为这是我获取第二个系列的 URL 的地方;所以我不能将所有调用都放入同一个自调用函数中。我需要在第一个系列完成后执行第二个系列。

最佳答案

假设使用 jQuery,您应该能够使用 Promise 来做到这一点:

$.when( // first set
    $.ajax({}),
    $.ajax({})
).then(function(){ // second set
    $.ajax({});
    $.ajax({});
});

关于javascript - 进行两个系列的异步调用,中间有延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32168294/

相关文章:

javascript - 透明背景颜色内的图像不受影响

javascript - 处理从ajax post下载的文件

javascript - ajax请求后如何用新数组替换旧数组?

django - 如何将 Django post_save 信号作为后台进程运行?

php - 相对较大的 JSON 文件的服务器端和客户端缓存

java - 后台处理java

JavaScript,声明变量时语法困惑

java - "Error initializing Network Connection: Class not found",源: file:///android_asset/www/cordova.js

javascript - 使用 jquery 获取所选选项的值

javascript - ContentEditable 不允许发送 php 字符串