javascript - Comment utiliser la fonction Generator Yield dans ES6?
PHP中文网
PHP中文网 2017-06-26 10:50:39
0
1
697

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中文网

认证高级PHP讲师

répondre à tous(1)
刘奇

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

. 🎜
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal