Maison > Questions et réponses > le corps du texte
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.
怪我咯2017-06-26 10:52:39
yield
Les mots clés ont deux fonctions :
Suspend l'exécution de la fonction génératrice et renvoie la valeur de l'expression suivante
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