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

188
Vistas
How to break a nodejs for loop if the execution takes more than 20 seconds?

Suppose I have a forloop that does some execution. I would like to break the for loop if it takes more than 20 seconds to execute.

async function mainFunc(){

    for (let step = 0; step < 5; step++) {
        // Runs some complex operation that is computationally intensive
        //someFunc() is a async method. SomeAnotherFunc() is a synchronous one.
        await someFunc();
        someAnotherFunc();//this function contains built in function 
        // execSync() that runs command line functions 
        await someFunc(); 
 
    }
}

Can anyone provide me a simple solution where tracking the time and breaking the loop happens on a separate thread so that I don't burden my existing for loop execution?

This answer partially works for me. The solution given by @Molda will only help me in the case of Async methods. If you see the code snippet that I provided, there is a synchronous method called someAnotherFunc() which has a nodejs process function "execSync" that runs command line functions. Now it is actually a pain point for me to track the time of this function as I dont have access to the method as it is a built in function. I would appreciate on your suggestions on how to proceed further.

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

0

That should be fairly simple

var stop = false;
setTimeout(()=>{ stop = true; }, 20 * 1000);

for (let step = 0; step < 5; step++) {
    if (stop) break;
}

Note:

The for loop without async/await is synchronous which means even calling multiple requests/db calls/ etc. will only take less then a second for the for loop to finish. So i can't imagine what you would do in it that would take 20 seconds

about 4 years ago · Juan Pablo Isaza Denunciar

0

Have you tried to add a timer inside the for loop and when it finish the 20 seconds to break?

How to do a timer in Angular 5
https://www.w3schools.com/js/js_break.asp

Something like this:

var stopTimer = false;
setTimeout(() => {
    stopTimer = true;
}, 20 * 1000);

for (let step = 0; step < 5; step++) {
    if (stopTimer) break;
}
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