I need to run asynchronous JavaScript functions in a loop. I need this to test the performance of my web application.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
SpeedTest.asyncLoop = function(iterations, func, callback) { var index = 1; var done = false; var loop = { next: function() { if (done) { return; } if (index <= iterations) { index++; func(loop); } else { done = true; callback(); } }, iteration: function() { return index - 1; }, stop: function() { done = true; callback(); } }; loop.next(); return loop; }; //Call it here SpeedTest.asyncLoop(10, function(loop) { MyAsyncFunction(function() { Common.log(loop.iteration()); loop.next(); }); }, function(){ Common.log( 'Test done'); } ); //Here is the function that will be called 10 times in a loop function MyAsyncFunction(callback){ //Call here if (typeof callback === "function") { callback(); } } |