我想在循環中檢查列表中的3000個項目。在每一步我必須在頁面上進行異步httprequest。使之成爲一個遞歸函數IST扔InternalError: too much recursion
這是到目前爲止我的代碼:JavaScript異步調用循環
var iteratorObject = new function(){
this.currentStep = -1;
this.iterationList = {};
this.start = function(list){
this.iterationList = list;
this.next(0);
}
this.next = function(value) {
this.currentStep = value;
if(this.currentStep +1 == this.iterationList.length){
return
}
var currentID = this.iterationList[this.currentStep];
//Do Aysnc HttpRequest on succeed call this.next(value +1);
}
}
var iterator = iteratorObject;
var iterationList = Object.keys([Object]);
iterator.start(iterationList);
如何更改我的代碼以避免遞歸函數,只有一次處理一個請求?
你不能在'for'循環,除非你想要寫一個框架,做_promises_做到這一點。你看起來像你很接近 - 只需重寫'next',以便查看'currentStep'而不需要'value'。 – 2015-02-09 00:02:00
在回調中調用下一個仍然是遞歸函數?我有一種方法可以在currentStep上調用next()函數來獲取事件列表。 對不起,我有點雛在JS – 2015-02-09 00:06:23
你可以看看這個jsbin我準備:http://jsbin.com/kacabu/1/edit?js,console – 2015-02-09 00:47:17