Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

401
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda