Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一组接一组地执行ajax请求_Ajax - Fatal编程技术网

一组接一组地执行ajax请求

一组接一组地执行ajax请求,ajax,Ajax,我有3个数组,每个数组有10个URL 我想要的是: 首先,执行第一个数组中URL的所有ajax请求 然后执行第二个数组URL的ajax请求 最后执行第三个数组请求ursl。您可以使用Promissions(ES6)将请求排队,并在队列清除后继续 var array1 = ['url1', 'url2', 'url3']; var array2 = ['url1', 'url2', 'url3', 'url4']; var array3 = ['url1', 'url2']; function

我有3个数组,每个数组有10个URL

我想要的是:

首先,执行第一个数组中URL的所有ajax请求

然后执行第二个数组URL的ajax请求

最后执行第三个数组请求ursl。

您可以使用Promissions(ES6)将请求排队,并在队列清除后继续

var array1 = ['url1', 'url2', 'url3'];
var array2 = ['url1', 'url2', 'url3', 'url4'];
var array3 = ['url1', 'url2'];

function createPromiseArray(list){
   return new Promise(function(resolve, reject){
      var queue = [];
      for(var i=0; list.length > i; i++){
          queue.push(doRequest(list[i]));
      }
      Promise.all(queue).then(function(){
          resolve();
      });
    }
}

function doRequest(url){
    return new Promise(function(resolve, reject){
        // do ajax request
        if (!error) {
            resolve(data);
        }else{
            reject(data);
        }
    }
}

createPromiseArray(array1)
   .then(function(){
       createPromiseArray(array2);
   })
   .then(function(){
       createPromiseArray(array3);
   })
   .then(function(){
       console.log('all done');
   })
更多关于承诺的信息可以在这里找到


您可能还需要为较旧的浏览器使用polyfill,您可以在此处找到它

它在某种程度上起到了作用。它说“错误未定义”,这只是一个来自ajax调用的示例。当ajax调用返回错误时,添加类似于
var error=data.error。这取决于它是真是假将决定承诺是否被拒绝。我不理解拒绝和解决以及参数数据和错误。我理解承诺的概念。我必须做一些更改,这使得代码正常工作。