Problem:
In Node.js und Mongoose wird eine rekursive Funktion innerhalb einer forEach-Schleife ausgeführt kann zu einer Endlosschleife führen. Wie können wir das verhindern?
Antwort:
Ein direktes Brechen aus einer forEach-Schleife ist nicht möglich, da sie als einzelne Operation ohne die traditionelle Schleifenstruktur ausgeführt wird. Es gibt jedoch alternative Methoden, um Bruchverhalten nachzuahmen:
1. Kontext verwenden:
Übergeben Sie ein zweites Argument an forEach, um es als Kontext zu verwenden, und speichern Sie darin eine boolesche Variable. Verwenden Sie eine if-Anweisung innerhalb der forEach-Funktion, um den booleschen Wert zu überprüfen und bei Bedarf zu beenden.
2. Ausnahmebehandlung:
Schließen Sie die gesamte forEach-Schleife in einen Try-Catch-Block ein und lösen Sie eine Ausnahme aus, wenn Sie sie unterbrechen möchten. Diese Methode wird aufgrund ihrer Auswirkungen auf die Leistung und die Wartbarkeit des Codes weniger bevorzugt.
3. Verwenden von every() oder some():
Verwenden Sie anstelle von forEach die Methoden every() oder some(), die eine benutzerdefinierte Iteration, Steuerung und ein frühes Beenden basierend auf Rückgabewerten ermöglichen.
Beispiel für die Verwendung von every():
<code class="javascript">['a', 'b', 'c'].every(function(element, index) { // Do your thing, then: if (you_want_to_break) return false; else return true; });</code>
Das obige ist der detaillierte Inhalt vonWie kann ich die Endlosschleife in JavaScript forEach unterbrechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!