Ci sono più di 2000 oggetti nell'array di righe che devono essere elaborati ma si sono verificati errori. Chiamata massima Stack superata. Le funzioni di backback stanno manipolando il database. Ho provato ad utilizzareNodejs RangeError Numero massimo di stack di chiamate superato
setTimeout
che sta lavorando ma rendendo l'esecuzione lenta. C'è qualche altro metodo per risolverlo.
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);
}
});
});
};
Si sta utilizzando una funzione ricorsiva (una che si chiama). Riesci a pensare a un modo per fare la stessa elaborazione senza quel modello? – joews
La ricorsione o il ciclo per la gestione delle operazioni db è sempre una cattiva idea. – Lewis
Si prega di suggerire la migliore soluzione. – Rohit