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é n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
La méthode adopt() des instances de DisposableStack enregistre une valeur qui n'implémente pas le protocole de libération dans la pile en fournissant une fonction de libération personnalisée.
Toute valeur à enregistrer dans la pile.
onDisposeUne fonction qui sera appelée lors de la libération de la pile. La fonction reçoit value comme seul argument.
La même valeur value qui a été passée en argument.
Levée si onDispose n'est pas une fonction.
ReferenceErrorLevée si la pile est déjà libérée.
L'objectif principal de adopt() est d'enregistrer une valeur qui n'implémente pas le protocole de libération dans la pile. Si la valeur est déjà libérable, vous pouvez utiliser use() à la place, ce qui utilise automatiquement la méthode [Symbol.dispose]() de la valeur comme fonction de libération.
adopt(value, onDispose) est presque identique à defer(() => onDispose(value)), mais elle permet de déclarer la ressource et de l'enregistrer sur la même ligne. Ainsi, il y a peu de chances qu'une erreur survienne entre la création et l'enregistrement de la ressource, ce qui pourrait entraîner une fuite de la ressource.
Dans le même esprit de « déclarer et enregistrer la ressource dès sa création », vous devez toujours envelopper l'expression d'acquisition de la ressource dans adopt(), au lieu de l'extraire dans une instruction séparée.
Ce code consomme un ReadableStream via un ReadableStreamDefaultReader. Le lecteur n'implémente pas le protocole de libération, donc nous utilisons adopt() pour l'enregistrer dans la pile.
| ECMAScript Async Explicit Resource Management # sec-asyncdisposablestack.prototype.adopt |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 21 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.