一组接一组地执行ajax请求
我有3个数组,每个数组有10个URL 我想要的是: 首先,执行第一个数组中URL的所有ajax请求 然后执行第二个数组URL的ajax请求 最后执行第三个数组请求ursl。您可以使用Promissions(ES6)将请求排队,并在队列清除后继续一组接一组地执行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
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将定义错误变量的代码>。这取决于它是真是假将决定承诺是否被拒绝。我不理解拒绝和解决以及参数数据和错误。我理解承诺的概念。我必须做一些更改,这使得代码正常工作。