recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment utiliser la fonction Generator Yield dans ES6?

Jetons d'abord un coup d'œil au code :

function wrapper(generatorFunction) {
    return function (...args) {
        let generatorObject = generatorFunction(...args);
        generatorObject.next();
        return generatorObject;
    };
}

const wrapped = wrapper(function* () {
    console.log(`First input: ${yield}`);
    return 'DONE';
});

wrapped().next('hello!')
// First input: hello!

Comment comprendre ce résultat de sortie ? Après avoir longuement réfléchi, je n'arrivais pas à comprendre les résultats de son opération.
Il y a aussi le code suivant :

function* dataConsumer() {
  console.log('Started');
  console.log(`1. ${yield}`);
  console.log(`2. ${yield}`);
  return 'result';
}

let genObj = dataConsumer();
genObj.next();
// Started
genObj.next('a')
// 1. a
genObj.next('b')
// 2. b

Je ne comprends toujours pas, aidez-moi à analyser les deux morceaux de code ci-dessus et aidez-moi à apprendre la fonction Générateur. Merci.

PHP中文网PHP中文网2697 Il y a quelques jours675

répondre à tous(1)je répondrai

  • 怪我咯

    怪我咯2017-06-26 10:52:39

    yield Les mots clés ont deux fonctions :

    1. Suspend l'exécution de la fonction génératrice et renvoie la valeur de l'expression suivante

    2. Reprenez l'exécution de la fonction génératrice et récupérez les paramètres facultatifs transmis par la next méthode

    Les deux exemples que vous avez donnés utilisent tous deux yield 接收了 next pour recevoir les paramètres transmis par la méthode

    . 🎜

    répondre
    0
  • Annulerrépondre