Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

396
Views
¿Cómo obtengo un punto final en el intervalo, detengo el intervalo y cancelo la llamada al salir de la página?

Obtengo mensajes cada segundo después de que la llamada anterior se realizó correctamente. El problema es que, a veces, la llamada tarda 2 segundos en finalizar . Durante ese tiempo, puedo navegar hacia atrás, elegir a otra persona y abrir la conversación con él.

Ahora, la llamada anterior es exitosa y llena el área con datos de conversación del UsuarioA y del UsuarioB . Además, obtiene continuamente las conversaciones tanto para el UsuarioA como para el UsuarioB.

Sospecho que tal vez debería usar clearTimeout(interval) en lugar de clearTimeout(fetchConversationInterval) , o usar un código mejor.

Pero también, ¿cómo puedo abortar la llamada aún sin terminar si el usuario navega hacia atrás mientras se recuperan los mensajes?

Tengo el siguiente código:

en datos()

 fetchConversationInterval: null,

En montado ():

 this.messagesFetchingInterval()

Y en beforeDestroy()

 clearTimeout(this.fetchConversationInterval)

En métodos:

 async messagesFetchingInterval () { let that = this this.fetchConversationInterval = setTimeout(async function interval () { await that.getConversation(that.peerProfile.user_id) .finally(()=> { if (that.currentRoute === '/direct-messages/conversation') { that.fetchConversationInterval = setTimeout(interval, 1000) } }) }, 1000) },
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Las funciones asíncronas (en su caso, getConversation) devuelven su suscripción. puede guardarlo en un parámetro y luego cancelar su suscripción al destruirlo.

 var mySubscription; this.mySubscription = someAsyncFunc().subscribe((result) => { console.log(result); }) ngOnDestroy(){ this.mySubscription.unsubscribe(); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!