Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

145
Vistas
¿Cómo puede una instancia de clase de JavaScript borrar los temporizadores cuando se elimina la referencia?

Tengo una situación como esta:

 class Thing { constructor() { this.timer = setInterval(() => console.log('Hi'), 1000); } } let a = new Thing(); // ... various stuff happens which takes less than 1s ... a = undefined;

El problema es que a instancia de Thing continúa activando el cierre del temporizador después de que a se ha establecido en undefined :

Hola
Hola
Hola
Hola
Hola

Ahora podría hacer que el ámbito principal llame a un método para indicarle a la instancia que detenga el temporizador, pero el principal en realidad no sabe que se está utilizando un temporizador; es un detalle de implementación interna de Thing .

¿Cómo puede Thing saber que se ha eliminado la referencia para que pueda limpiarse y permitir que se GCed?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puedes usar un FinalizationRegistry :

 class Thing { constructor() { this.timer = setInterval(() => console.log('Hi'), 1000); } } let a = new Thing(); const registry = new FinalizationRegistry(timer => { clearInterval(timer); console.log('Cleared'); }); registry.register(a, a.timer); a = undefined;

Tenga en cuenta que puede pasar algún tiempo antes de que el objeto se recopile como basura. En mis pruebas del código anterior, el intervalo se ejecutó entre 5 y 20 veces antes de que finalmente se borrara.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda