Das yield-Schlüsselwort in JavaScript
In diesem Artikel wird die Verwendung des Schlüsselworts yield
in der Generatorfunktion und der Zweck erläutert. An einem JavaScript-Beispiel werden wir die Funktionalität und Verwendung des Schlüsselworts yield
ausführen.
Verwenden Sie das Schlüsselwort yield
in JavaScript
In JavaScript können wir keine yield
-Ausdrücke in Callbacks oder verschachtelten Funktionen verwenden. Wir verwenden das Schlüsselwort yield
, um die Generatorfunktionen asynchron anzuhalten und fortzusetzen.
Die Anweisung yield
gibt ein Objekt zurück, das zwei Eigenschaften enthält, value
und done
.
-
value
: Diese Eigenschaft enthält einen tatsächlichen Wert, der an die Generatorfunktion übergeben wird. -
done
: Diese Eigenschaft enthält einen booleschen Wert. Wenn eine Generatorfunktion vollständig abgeschlossen ist, gibt sie true zurück; andernfalls falsch. -
Generatorfunktion: Um eine Funktion in einen Generator umzuwandeln, müssen wir das Sternsymbol (
*
) mit dem Schlüsselwortfunction
hinzufügen. In JavaScript ähnelt die Generatorfunktion der normalen Funktion.Wir verwenden das Schlüsselwort
yield
, um einen beliebigenvalue
zurückzugeben. Wenn wir die Ausführung der Generatorfunktion pausieren wollen, müssen wir denyield
-Ausdruck verwenden.Wenn wir die Ausführung wieder fortsetzen möchten, müssen wir die Methode
next()
aufrufen. Die Funktion wird so lange ausgeführt, bis sie die Anweisungyield
oderreturn
findet.Beim erneuten Aufruf der Generatorfunktion wird die Implementierung ab dem letzten
yield
-Ausdruck fortgesetzt.
Hier erstellen wir ein Beispiel zum Generieren einer Funktion und verwenden das Schlüsselwort yield
, um die Ausführung anzuhalten.
Beispielcode:
<script>
function* testGenerator(i) {
while (i < 5) {
yield i++;
}
}
//creating an object with our function testGenerator
const test = testGenerator(2);
//return object with 2 value is passed to the testGenerator yield expression
console.log(test.next());
//return object with 3 value.
console.log(test.next());
//return object with 4 value
console.log(test.next());
</script>
Ausgang:
[object Object] {
done: false,
value: 2
}
[object Object] {
done: false,
value: 3
}
[object Object] {
done: false,
value: 4
}
Die Generatorfunktion testGenerator()
haben wir im obigen JavaScript-Quellcode mit einem Sternchen-Symbol (*
) deklariert. Wir haben eine while
-Schleife verwendet, um die Ausführung mit dem Schlüsselwort yield
innerhalb der Funktion anzuhalten.
Dann haben wir mit unserer Generatorfunktion ein Objekt test
erstellt und den Wert 2
übergeben. In console.log
haben wir das Funktionsobjekt test
und die Methode next()
aufgerufen.
Sie können die zurückgegebenen Objekte und den Ausführungsablauf im Protokollfeld des Compilers sehen.