我有一个案例,其中ajax调用需要按顺序运行
因此,要保持一个继续增加运行时间的队列,所以我使用了以下方法,但似乎无法正常工作。
var requestQueue=[];
function processQueue() {
var reqParam=requestQueue[0];
$.ajax(reqParam).then(function() {
requestQueue.shift();
Logger.log("Queue is processed",requestQueue.length);
if (requestQueue.length > 0) {
processQueue();
} else {
Logger.log("Queue is processed");
}
}, function() {
requestQueue.shift();
console.log("Queue is processed",requestQueue.length);
if (requestQueue.length > 0) {
processQueue();
} else {
console.log("Queue is processed");
}
});
}
//when new request trigger by user
function onUserEvent(){
if (requestQueue.length === 0) {
requestQueue.push(requestParameters);
processQueue();
} else {
requestQueue.push(requestParameters);
}
}