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

153
Visualizações
Después de completar setInterval, la ejecución no sale de la función principal

Tomando la respuesta de una API y pasándola a otra función, usando el ID de respuesta dentro de un setInterval para verificar el estado de una operación para implementar la barra de progreso.

Por cada vez que se envía el ID por API dentro de la función se devuelve el estado en cada instante.

Una vez que el estado es " ÉXITO " o "Error", necesito salir de la función y realizar el siguiente paso de operaciones bajo la llamada de función, no está sucediendo . Si el estado es " PROGRESO ", necesito que el bucle se ejecute durante 1 minuto y salga.

Aquí estoy mi caso. Estoy usando clearInterval si el estado es "ÉXITO" para romper el ciclo.

¿Por qué no sale de la función después de completar el proceso?

¿Hay alguna forma alternativa de salir del bucle después de "ÉXITO" o "Error*"?

 this.userdat.sendData(data).subscribe((res:any)=>{ this.checkProgress(res.Id); //DO THIS -->Not coming here after exceuction })
 checkProgress(id: any) { this.StatFlag = false; this.interval = setInterval(() => { if (!this.StatFlag) { this.userdat.operationStatus(id).subscribe((statres: any) => { switch (statres.status) { case "PROGRESS": this.stepper.selectedIndex = 1; break; case "SUCESS": this.stepper.selectedIndex = 2; this.steppershow = false; this.StatFlag = true; clearInterval(this.interval) break; case "FAILED": this.steppershow = true; clearInterval(this.interval) this.StatFlag = true; break; } }); } }, 50000);
 <mat-horizontal-stepper *ngIf="showsteps0" #stepper> <mat-step label="SUBMITTED" > </mat-step> <mat-step label=" IN progress" > </mat-step> <mat-step *ngIf="!steppershow" label="Complteted" > </mat-step> <mat-step label="Failed" *ngIf="steppershow"> </mat-step> </mat-horizontal-stepper>

Intenté crear un nuevo bloque después de clearInterval y configurar el indicador para clearInterval , no funciona como se esperaba.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Tal vez sea un problema de alcance. En su setInterval, intente redefinir "esto".

 this.interval = setInterval(() => { this.userdat.operationStatus(id).subscribe((statres: any) => { switch (statres.status) { const that = this; ... ... that.StatFlag = true; }
about 4 years ago · Juan Pablo Isaza Relatório

0

Después del "ÉXITO"/"FRACASO", cancelar la suscripción, el intervalo funciona para mí.

 this.timeInterval = this.intervalVal.subscribe(() => { this.userdat.operationStatus(id).subscribe((statres: any) => { switch (statres.status) { ... ... this.timeInterval.unsubscribe() break; }

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