多次异步请求队列实现

对于多次异步请求且还要按照指定的顺序分布请求之前一直比较困扰的一个难题;前段时间在网上看到一个好方法;绝妙了。简单直接实用。

话不多说,上代码。

var ids = [{id:id1,url:url1}, {id:id2,url:url2}, {id:id2,url:url2}];//需要请求的参数以及url,按顺序排列

(function sendRequest(){
    
var id = ids.shift();//提取首个请求
   
 if(id){
       
 $.ajax({url: "/get", data: {id}}).always(function(){
   
         //do sth.
            
console.log("finished");
            sendRequest();//递归调用
       
 });
   
 } 
else {
       
 console.log("finished");
  
  }
})();

 

该方法精妙的地方在于通过递归调用,免去重复创建多个请求方法。通过shift逐个请求。

 

posted @ 2017-07-08 10:27  技者  阅读(740)  评论(0编辑  收藏  举报