在前端頁面選中多條數據,調用後臺方法批量處理,要求在頁面上加上進度條。解決思路:逐條調用後臺方法,每次處理一個數據,上次處理完成後纔開始處理本次數據,在for循環裏肯定是不能調用後臺方法的,於是在異步方法裏的回調結果裏遞歸調用後臺方法。
基本模板如下:
function 遞歸方法(當前數據集索引,全部數據集){
if(當前數據集索引<全部數據集.length){
異步方法.subscribe(function(){
遞歸方法(當前數據集索引+1,全部數據集); //無論是否成功,都觸發下次調用
},function(){
遞歸方法(當前數據集索引+1,全部數據集);
})
}else{
return; //遞歸出口
}
}
//第一次調用
遞歸方法(0,全部數據集);