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

71
Vistas
SetInterval no vinculante en DOM - Angular

Intento vincular un valor actualizado cada segundo (como un contador), pero tengo un problema realmente extraño. Cuando inicio el temporizador, el valor no es vinculante, pero cuando lo detengo, puedo ver el valor total (si hago una pausa después de 9 segundos, el valor es 9, por ejemplo).

Más extraño, cuando reinicio el temporizador, el valor se vincula correctamente.

Pero el problema es que necesito vincular este valor al principio...

  • Ya probé RxJS Interval, pero en mi caso es peor...
  • Intenté iniciar la función en el DOM con la directiva NgInit, pero también fue peor (el contador comienza a contar cada 100 milisegundos) ...
  • Intenté iniciar la función en init en el componente, detenerlo cuando el usuario inicia el contador para reiniciarlo justo después, pero tengo el mismo problema que el anterior...

Este es mi componente real:

 ngOnInit() { this.subscription = this.FunctionsService.getContent().subscribe( res => { this.audioUrl = res.url; this.getDuration(this.audioUrl); if(this.audioUrl){ this.start(this.audioUrl); } } ) } start(audioUrl){ this.audio = new Pizzicato.Sound(audioUrl, () => { this.play(); }); setTimeout(()=>{ this.isPlaying = true; this.ready = true; },1000) } play(){ this.sound.play(); this.startTimer(); this.isPlaying = true; } pause(){ this.isPlaying = false; this.pauseTimer(); this.sound.pause(); } getDuration(src:any) { var audio = new Audio(src); let self = this; audio.onloadedmetadata = function() { console.log(audio.duration); }; } startTimer(){ var self = this; this.timer = setInterval(()=>{ self.currentTime++ console.log(self.currentTime); },1000) } pauseTimer(){ var self = this; clearInterval(self.timer); }

Me he perdido algo ? Gracias a todos por su ayuda !

about 4 years ago · Juan Pablo Isaza
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