Клавиша / esc

FinalizationRegistry

Объект, который позволяет регистрировать обработчики сборки мусора на зарегистрированных в нём объектах.

Время чтения: меньше 5 мин

Это незавершённая статья. Вы можете помочь её закончить! Почитайте о том, как контрибьютить в Доку.

Кратко

Скопировано

Объект, который управляет обработчиками событий, которые срабатывают, когда сборщик мусора собирает зарегистрированные в нём объекты. Это своеобразный реестр, в котором хранится всё, что нужно сделать с объектами перед их сборкой.

Колбэк очистки (cleanup callback) ещё называют финализатором (finalizer). Это такая функция, которая выполняется, когда зарегистрированный объект собирается сборщиком мусора.

Пример

Скопировано

Создаём регистр с колбэком heldValue:

        
          
          const registry = new FinalizationRegistry((heldValue) => {  // …})
          const registry = new FinalizationRegistry((heldValue) => {
  // …
})

        
        
          
        
      

Как пишется

Скопировано

Чтобы создать FinalizationRegistry, обязательно используйте оператор new. В скобках в качестве аргумента указывают колбэк очистки.

        
          
          new FinalizationRegistry(anyCallbackFunction)
          new FinalizationRegistry(anyCallbackFunction)

        
        
          
        
      

Старайтесь не полагаться на обработчики событий в объекте FinalizationRegistry. Сборка мусора — сложный процесс, и никто не знает, когда эти колбэки сработают и сработают ли вообще.

Методы

Скопировано
  • .register() — регистрирует объект в реестре.
  • .unregister() — отменяет регистрацию объекта в реестре.