Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2016.
La méthode return() des instances de Generator agit comme si une instruction return était insérée dans le corps du générateur à la position actuelle de suspension, ce qui termine le générateur et permet au générateur d'effectuer toutes les tâches de nettoyage lorsqu'elle est combinée avec un bloc try...finally.
La valeur à retourner.
Un Object possédant deux propriétés :
doneUne valeur booléenne :
La valeur donnée comme argument, ou, si l'expression yield est enveloppée dans un bloc try...finally, la valeur produite/retournée par le bloc finally.
Levée si le générateur est déjà en cours d'exécution.
La méthode return(), lorsqu'elle est appelée, peut être considérée comme si une instruction return valeur; était insérée dans le corps du générateur à la position actuelle de suspension, où valeur est la valeur passée à la méthode return(). Ainsi, dans un flux typique, appeler return(valeur) retournera { done: true, value: valeur }. Cependant, si l'expression yield est enveloppée dans un bloc try...finally, le flux de contrôle ne quitte pas le corps de la fonction, mais passe au bloc finally à la place. Dans ce cas, la valeur retournée peut être différente, et done peut même être false, s'il y a d'autres expressions yield dans le bloc finally.
L'exemple suivant illustre une utilisation simple d'un générateur et de la méthode return().
Si return(valeur) est appelé sur un générateur qui est déjà dans l'état « terminé », le générateur restera dans l'état « terminé ».
Si aucun argument n'est fourni, la propriété value de l'objet retourné sera undefined. Si un argument est fourni, il deviendra la valeur de la propriété value de l'objet retourné, sauf si l'expression yield est enveloppée dans un bloc try...finally.
Le fait que la méthode return ait été appelée ne peut être connu du générateur lui-même que si l'expression yield est enveloppée dans un bloc try...finally.
Lorsque la méthode return est appelée sur un générateur qui est suspendu dans un bloc try, l'exécution dans le générateur passe au bloc finally — puisque le bloc finally des instructions try...finally s'exécute toujours.
La valeur de retour du bloc final peut également devenir la valeur (value) du résultat retourné par l'appel à return.
| ECMAScript® 2027 Language Specification # sec-generator.prototype.return |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 25 févr. 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.