2013-09-24 89 views
3

我正在運行下面的代碼,但是我得到的堆棧大小超出了我無法解釋爲什麼。該代碼適用於更少的項目(測試多達1000)。當我嘗試更多的項目時,我總是會得到這個錯誤。我正在使用Parse sdk btw。使用async.queue超出了最大調用堆棧大小

d:\GitHub\ExampleProj\node_modules\parse\build\parse-latest.js:785 
    each(slice.call(arguments, 1), function(source) { 
      ^
RangeError: Maximum call stack size exceeded 

任何想法?這裏的代碼

var q = async.queue(function (user, callback) { 
    user.signUp(null, { 
     success: function(user) { 
      callback(); 
     }, 
     error: function(user, error) { 
      callback(); 
     } 
    }); 
}, 100); 

q.drain = function() { 
    console.log('All items have been processed'); 
}; 

// ~17000 items 
for(var i=0; i < sqlFiles.length; i++) { 
    var user = { 
     ... 
    }; 

    q.push(user); 
} 
+0

這段代碼似乎沒有錯。雖然我認爲沒有理由讓concurrency = 100的隊列。不過,問題可能在user.signUp()中的某處。 –

回答

4

節點堆棧大小類似於與V8引擎的瀏覽器堆棧大小的乾淨版本,它就像25 000 但是你可以使用一個控制檯參數去增加它:

node --stack-size=1000000000 file.js 
相關問題