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

187
Views
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 answers
Answer question

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 Report

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 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!