5
行數組中有超過2000個對象需要處理,但出現錯誤最大調用堆棧超出。回調函數正在操作數據庫。我試圖用Nodejs RangeError超過最大調用堆棧
的setTimeout
是工作,但使執行緩慢。有沒有其他方法可以解決這個問題。
var updateRowsStatus = function (req, rows, next) {
if (rows.length == 0) {
return next();
}
var batchRows = rows.splice(0, 20);
var count = 0;
batchRows.forEach(function (row) {
// other function
updateSubEntity(req, row, 'rows', function (err, response) {
if (err)throw err;
if (++count == batchRows.length) {
updateRowsStatus(req, rows, next);
}
});
});
};
您正在使用遞歸函數(調用自己的函數)。你能想出一種方法來處理沒有這種模式的相同處理嗎? – joews
處理數據庫操作的遞歸或循環總是一個壞主意。 – Lewis
請建議最佳解決方案。 – Rohit