Maison > Article > interface Web > Introduction à la différence entre la fonction Générateur et la fonction asynchrone
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!