Search code examples
jqueryloopstimerdelay

how to produce a delay effect


I have a loop with in a loop like this

$.each(requiredCities,function(keya,valb){
 $.each(requiredKeyWords,function(keya,valb){
  download(keya,valb);
 });
});

I want this download function to be called every 2 seconds. The problem is im unable to use setTimeout.


Solution

  • Do this:

    var i=1;
    $.each(requiredCities,function(keya,valb){
     $.each(requiredKeyWords,function(keya,valb){
        var timerId = setInterval(function(){
           download(keya,valb);
           clearInterval(timerId);
        }, 2000*(i++));    
     });
    });
    

    Cheers