5
Istnieje ponad 2000 obiektów w tablicy wierszy, które muszą zostać przetworzone, ale otrzymałem błąd Maksymalne wywołanie Przekroczony stos. Funkcja klapki manipuluje bazą danych. Próbowałem użyćNodejs RangeError Maksymalny stos wywołań przekroczył
setTimeout
że działa, ale czyni wykonanie powoli. Czy istnieje inna metoda, aby to naprawić.
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);
}
});
});
};
Używasz funkcji rekursywnej (takiej, która sama się nazywa). Czy możesz wymyślić sposób na to samo przetwarzanie bez tego wzorca? – joews
Rekursja lub pętla do obsługi operacji na db są zawsze złym pomysłem. – Lewis
Proszę sugerować najlepsze rozwiązanie. – Rohit