Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2016 browserübergreifend verfügbar.
Die return()-Methode von Generator-Instanzen wirkt, als ob eine return-Anweisung an der aktuellen angehaltenen Position im Körper des Generators eingefügt wird. Dies beendet den Generator und ermöglicht es dem Generator, jede notwendige Bereinigungsaufgabe durchzuführen, wenn sie mit einem try...finally-Block kombiniert wird.
Der zurückzugebende Wert.
Ein Object mit zwei Eigenschaften:
doneEin boolescher Wert:
Der als Argument angegebene Wert oder, wenn der yield-Ausdruck in einem try...finally eingeschlossen ist, der Wert, der im finally-Block ausgegeben/zurückgegeben wird.
Wird ausgelöst, wenn der Generator bereits läuft.
Die return()-Methode kann beim Aufruf gesehen werden, als ob eine return value;-Anweisung im Körper des Generators an der aktuellen angehaltenen Position eingefügt wird, wobei value der an die return()-Methode übergebene Wert ist. Daher wird im typischen Ablauf durch Aufrufen von return(value) { done: true, value: value } zurückgegeben. Ist jedoch der yield-Ausdruck in einem try...finally-Block eingeschlossen, verlässt der Kontrollfluss nicht den Funktionskörper, sondern fährt im finally-Block fort. In diesem Fall kann der zurückgegebene Wert unterschiedlich sein und done kann sogar false sein, wenn es mehr yield-Ausdrücke im finally-Block gibt.
Das folgende Beispiel zeigt einen Generator und die return-Methode.
Wenn return(value) auf einen Generator aufgerufen wird, der sich bereits im "abgeschlossenen" Zustand befindet, bleibt der Generator im "abgeschlossenen" Zustand.
Wenn kein Argument bereitgestellt wird, ist die value-Eigenschaft des zurückgegebenen Objekts undefined. Wird ein Argument bereitgestellt, wird es zum Wert der value-Eigenschaft des zurückgegebenen Objekts, es sei denn, der yield-Ausdruck ist in einem try...finally eingeschlossen.
Die Tatsache, dass die return-Methode aufgerufen wurde, kann dem Generator nur bekannt gemacht werden, wenn der yield-Ausdruck in einem try...finally-Block eingeschlossen ist.
Wenn die return-Methode auf einen Generator aufgerufen wird, der innerhalb eines try-Blocks angehalten ist, wird die Ausführung im Generator zum finally-Block fortgesetzt — da der finally-Block der try...finally-Anweisungen immer ausgeführt wird.
Der Rückgabewert des finally-Blocks kann auch zum value des Ergebnisses werden, das von dem return-Aufruf zurückgegeben wird.
| ECMAScript® 2027 Language Specification # sec-generator.prototype.return |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.