diff options
author | SphinxKnight <SphinxKnight@users.noreply.github.com> | 2021-12-19 07:01:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-19 07:01:37 +0100 |
commit | a3efc50f26d87c20c2f07f14772cf0d57d0f4fc3 (patch) | |
tree | 786b5acaabd5c0897994732e4d5de6daeea59dc2 /files/fr/web/javascript/reference/global_objects/finalizationregistry/unregister | |
parent | b1e7241f9e66591988e7de54a514eb6c15d555eb (diff) | |
download | translated-content-a3efc50f26d87c20c2f07f14772cf0d57d0f4fc3.tar.gz translated-content-a3efc50f26d87c20c2f07f14772cf0d57d0f4fc3.tar.bz2 translated-content-a3efc50f26d87c20c2f07f14772cf0d57d0f4fc3.zip |
Translation of FinalizationRegistry pages (#3153)
Diffstat (limited to 'files/fr/web/javascript/reference/global_objects/finalizationregistry/unregister')
-rw-r--r-- | files/fr/web/javascript/reference/global_objects/finalizationregistry/unregister/index.md | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/files/fr/web/javascript/reference/global_objects/finalizationregistry/unregister/index.md b/files/fr/web/javascript/reference/global_objects/finalizationregistry/unregister/index.md new file mode 100644 index 0000000000..a9ed6b5930 --- /dev/null +++ b/files/fr/web/javascript/reference/global_objects/finalizationregistry/unregister/index.md @@ -0,0 +1,113 @@ +--- +title: FinalizationRegistry.prototype.unregister() +slug: Web/JavaScript/Reference/Global_Objects/FinalizationRegistry/unregister +translation_of: Web/JavaScript/Reference/Global_Objects/FinalizationRegistry/unregister +browser-compat: javascript.builtins.FinalizationRegistry.unregister +--- +{{JSRef}} + +La méthode `unregister()` permet de retirer un objet donné d'un registre [`FinalizationRegistry`](/fr/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry). + +## Syntaxe + +```js +unregister(jetonDesenregistrement); +``` + +### Paramètres + +- `jetonDesenregistrement` + - : Le jeton utilisé par la méthode [`register()`](/fr/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry/register) lors de l'enregistrement de l'objet cible. + +### Valeur de retour + +`undefined`. + +## Notes + +Lorsqu'un objet cible a été récupéré, il ne fait plus partie du registre. Aussi, il n'est pas nécessaire d'utiliser `unregister()` dans les fonctions de rappel de nettoyage. Appelez uniquement `unregister` si vous n'avez pas reçu de fonction de rappel de nettoyage et que vous n'en avez plus besoin. + +## Exemples + +### Utiliser unregister() + +Cet exemple illustre l'enregistrement d'un objet en l'utilisant lui-même comme jeton pour le retirer du registre par la suite via `unregister()` : + +```js +class Bidule { + #cleanup = label => { + // ^^^^^−−−−− valeur tenue + console.error(`La méthode \`release\` n'a jamais été appelée pour l'objet avec l'étiquette "${label}"`); + }; + #registry = new FinalizationRegistry(this.#cleanup); + + /** + * Construit une instance `Bidule`. Assurez-vous d'appeler `release` + * lorsque vous avez fini de vous en servir. + * + * @param label Une étiquette pour le `Bidule`. + */ + constructor(label) { + // vvvvv−−−−− valeur tenue + this.#registry.register(this, label, this); + // cible −−−−−^^^^ ^^^^−−−−− jeton de désenregistrement + } + + /** + * Libère les ressources tenues par cette instance de `Bidule` . + */ + release() { + this.#registry.unregister(this); + // ^^^^−−−−− jeton de désenregistrement + } +} +``` + +Dans l'exemple qui suit, on illustre l'enregistrement en utilisant un autre objet comme jeton de désenregistrement : + +```js +class Bidule { + #cleanup = label => { + // ^^^^−−−−− valeur tenue + console.error(`La méthode \`release\` n'a jamais été appelée pour \`Bidule\` pour le fichier "${file.name}"`); + }; + #registry = new FinalizationRegistry(this.#cleanup); + + /** + * Construit une instance de `Bidule` pour le fichier donné. + * Assurez-vous d'appeler `release` lorsque vous n'en avez plus + * besoin. + * @param filename Le nom du fichier. + */ + constructor(filename) { + this.#file = File.open(filename); + // vvvvv−−−−− valeur tenue + this.#registry.register(this, label, this.#file); + // cible −−−−−^^^^ ^^^^^^^^^^−−−−− jeton de désenregistrement + } + + /** + * On libère les ressources tenues par cette instance de `Bidule`. + */ + release() { + if (this.#file) { + this.#registry.unregister(this.#file); + // ^^^^^^^^^^−−−−− jeton de désenregistrement + File.close(this.#file); + this.#file = null; + } + } +} +``` + +## Spécifications + +{{Specifications}} + +## Compatibilité des navigateurs + +{{Compat}} + +## Voir aussi + +- [`FinalizationRegistry`](/fr/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry) |