Que signifie le rendement dans es6 ?

WBOY
Libérer: 2022-03-30 18:25:44
original
3170 Les gens l'ont consulté

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}".

Que signifie le rendement dans es6 ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, ECMAScript version 6.0, ordinateur Dell G3.

Que signifie rendement dans es6 ?

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';
 }
Copier après la connexion

É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';
}
Copier après la connexion

Étape 3, construisez l'itérateur.

var iterator = delegate();
Copier après la connexion

É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()) // 第四次输出
Copier après la connexion

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!

Étiquettes associées:
es6
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!