5
Es gibt mehr als 2000 Objekte im Array rows, die verarbeitet werden müssen, aber Fehler erhalten Maximum Call Stack überschritten. Callback-Funktion manipulieren Datenbank. Ich habe versucht,Nodejs RangeError Maximum Callstack überschritten
SetTimeout
, die arbeitet zu verwenden, sondern macht die Ausführung langsam. Gibt es eine andere Methode, um es zu beheben?
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);
}
});
});
};
Sie verwenden eine rekursive Funktion (eine, die sich selbst aufruft). Können Sie sich einen Weg vorstellen, die gleiche Verarbeitung ohne dieses Muster zu machen? – joews
Rekursion oder Schleife für die Behandlung von Db-Operationen sind immer eine schlechte Idee. – Lewis
Bitte schlagen Sie die beste Lösung vor. – Rohit