Das yield-Schlüsselwort in JavaScript

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.

  1. value: Diese Eigenschaft enthält einen tatsächlichen Wert, der an die Generatorfunktion übergeben wird.

  2. done: Diese Eigenschaft enthält einen booleschen Wert. Wenn eine Generatorfunktion vollständig abgeschlossen ist, gibt sie true zurück; andernfalls falsch.

  3. Generatorfunktion: Um eine Funktion in einen Generator umzuwandeln, müssen wir das Sternsymbol (*) mit dem Schlüsselwort function hinzufügen. In JavaScript ähnelt die Generatorfunktion der normalen Funktion.

    Wir verwenden das Schlüsselwort yield, um einen beliebigen value zurückzugeben. Wenn wir die Ausführung der Generatorfunktion pausieren wollen, müssen wir den yield-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 Anweisung yield oder return 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.