FinalizationRegistry
JavaScript 🔴 SeniorDefinition
API qui permet d'enregistrer un callback de nettoyage appele quand un objet observe est garbage-collecte. Companion de WeakRef pour le cleanup de ressources.
Analogie
Un notaire qui execute le testament (cleanup) quand la personne (objet) n'est plus la.
Exemple de code
const registry = new FinalizationRegistry((heldValue) => {
console.log(`Cleaned up: ${heldValue}`);
});
let obj = { heavy: new ArrayBuffer(1e6) };
registry.register(obj, 'heavy-buffer');
obj = null; // callback sera appele au GC
Cas d'usage
Liberation de ressources externes (handles fichier, connexions) quand l'objet JS associe est GC.
Anti-pattern
Se baser sur FinalizationRegistry pour une logique critique : le callback peut ne jamais etre appele.