Maison  >  Article  >  interface Web  >  Introduction à la différence entre la fonction Générateur et la fonction asynchrone

Introduction à la différence entre la fonction Générateur et la fonction asynchrone

不言
不言avant
2019-04-04 11:28:152345parcourir

Cet article vous apporte une introduction à la différence entre la fonction génératrice et la fonction asynchrone. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Fonction Générateur :

La fonction Générateur est une solution asynchrone fournie par ES2015, qui est très différente des fonctions ordinaires

Caractéristiques :

1. Suivez le mot-clé de la fonction avec un signe (*)

2. Utilisez l'expression de rendement comme état à l'intérieur du corps de la fonction

La fonction Générateur renvoie un traverseur , chacun ; l'état peut être parcouru via la méthode for...of ;

utilisation :

exécute le générateur et ne l'exécute pas immédiatement, renvoyant un traverseur, qui appelle next() et throw() Ou return() exécute l'état suivant, capture les erreurs ou termine le traverseur ;

fonction async :

la fonction asynchrone est la syntaxe de fonction asynchrone fournie par ES2017, qui est le sucre syntaxique du générateur, mais son utilisation est toujours très différente de la fonction Générateur

Caractéristiques :

1 Suivez le mot-clé async devant le mot-clé de fonction ; 2. Utilisez l'expression d'attente dans le corps de la fonction ;

la fonction asynchrone renvoie un objet de promesse

Utilisation :

L'exécution de la fonction asynchrone s'exécutera immédiatement, tout comme une fonction normale ; , mais renvoie Un objet promise ;

Comparaison entre les deux :

1 Generator apparaît dans ES2015, async apparaît dans ES2017, async est le sucre syntaxique de Generator ;

2. Les méthodes d'exécution sont différentes. L'exécution du générateur nécessite l'utilisation d'un exécuteur (next() et d'autres méthodes) ; la fonction asynchrone a son propre exécuteur, qui est le même que l'exécution des fonctions ordinaires ;

3. La syntaxe et la sémantique de async sont plus claires. Clairement, async signifie asynchrone, wait signifie attendre ; la sémantique du signe (*) et du rendement dans la fonction Generator

4. Le rendement dans le générateur ne peut être suivi que d'une fonction Thunk ou d'un objet Promise ; et l'attente dans la fonction asynchrone peut être suivie d'un objet de promesse ou d'une valeur de type primitif (qui sera automatiquement convertie en un objet de promesse immédiatement). résout);

5. La valeur de retour est différente. Le générateur renvoie un traverseur, par rapport à async qui renvoie un objet de promesse.

[Recommandations associées :

Tutoriel vidéo JavaScript

]

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer