Javascript run loop for specified time

TheMonarch picture TheMonarch · Feb 19, 2013 · Viewed 9.5k times · Source

I have a function that interfaces with a telephony program, and calls people. I want to know, is there a method that I can use to call folks for a certain amount of time?

I'd like to run a loop like:

while(flag = 0){
    call(people);

    if(<ten minutes have passed>){
        flag = 1;
    }
}

Any help would be appreciated.

Answer

ChrisC picture ChrisC · Feb 19, 2013

You probably want the setTimeout() function.

Something like this should work (untested):

var keepCalling = true;
setTimeout(function () {
    keepCalling = false;
}, 60000);

while (keepCalling) {
    callPeople();
}

An alternative method if you're having problems with setTimeout():

var startTime = Date.now();
while ((Date.now() - startTime) < 60000) {
    callPeople();
}