Dans es6, rendement est un mot-clé utilisé par le générateur pour suspendre en interne sa propre opération ; rendement est suivi d'une fonction de générateur ou d'un autre objet itérable, et la valeur de retour de l'expression de rendement est la valeur de l'objet itérable qui le suit. l'itération est terminée. Valeur de retour, la syntaxe est "function*gen(){yield expression}".
L'environnement d'exploitation de ce tutoriel : système Windows 10, ECMAScript version 6.0, ordinateur Dell G3.
yield est un mot-clé utilisé par Generator dans ES6 pour suspendre en interne sa propre opération.
Veuillez noter le mot "interne", la fonction du générateur ne peut pas être interrompue par une logique externe, elle ne peut être interrompue que par elle-même via le rendement.
Le mot-clé rendement peut être suivi d'une variable ou utilisé seul. Si rendement est suivi d'une variable (nous pouvons l'appeler une expression de rendement), lorsque la fonction génératrice reprend son exécution après avoir été suspendue, les paramètres transmis seront utilisés comme valeur de l'expression de rendement globale pour participer aux opérations logiques ultérieures
;Lorsque le rendement n'est pas suivi des variables, le rendement utilisé seul n'est utilisé que comme fonction de générateur de pause. Après la reprise du fonctionnement du générateur, les paramètres transmis sont utilisés comme valeur du rendement pour participer aux opérations ultérieures.
Exemple
Étape 1, construisez une fonction génératrice.
function* numbers () { yield 1; yield 2; return 'numbers'; }
Étape 2, créez un proxy en dehors de la fonction génératrice ci-dessus.
function* delegate () { var str = yield* numbers(); console.log(str); yield 3; return 'delegate'; }
Étape 3, construisez l'itérateur.
var iterator = delegate();
Étape 4, affichez les résultats de l'itération.
/** * 第一次输出结果 * { value: 1, done: false } */ console.log(iterator.next()) // 第一次输出 /** * 第二次输出结果 * { value: 2, done: false } */ console.log(iterator.next()) // 第二次输出 /** * 第三次输出结果 * numbers * { value: 3, done: false } */ console.log(iterator.next()) // 第三次输出 /** * 第四次输出结果 * { value: 'delegate', done: true } */ console.log(iterator.next()) // 第四次输出
Description du résultat de sortie
Lors de la troisième sortie, deux lignes de contenu sont sorties. Le contenu de la première ligne est la sortie de console.log(str) dans la fonction déléguée et la valeur est la valeur de retour de la fonction number.
Lors de la quatrième sortie, une ligne de contenu est générée, où la valeur value est la valeur de retour de la fonction déléguée. À ce stade, la propriété done est vraie.
【Recommandations associées : tutoriel vidéo javascript, front-end web】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!