settimeout - JavaScript : For loop with timeout -
i want loop should not executed @ once, wait timeout after each iteration. eg :
for(var i=0; i<10; i++) { console.log(i); //wait 1000 }
i found many solutions on stack-overflow 1 :
for (var i=0;i<=10;i++) { (function(ind) { settimeout(function(){console.log(ind);}, 3000); })(i); }
but in implementations, loop waits 3000 , executes whole loop @ once. there way each iteration called after waiting 1000.
you can work out simple math :
for (var i=0;i<=10;i++) { (function(ind) { settimeout(function(){console.log(ind);}, 1000 + (3000 * ind)); })(i); }
1000ms : 0 4000ms : 1 7000ms : 2 10000ms : 3 13000ms : 4 ...
following commentsit seem request bit blurry. if want after lastly timeout, can set limit , compare current index :
var limit = 10 (var i=0;i<=limit;i++) { (function(ind) { settimeout(function(){ console.log(ind); if(ind === limit){ console.log('it lastly one'); } }, 1000 + (3000 * ind)); })(i); }
fiddle : http://jsfiddle.net/tn4a7/
i think know want...and do
for (var i=0;i<=10;i++) { (function(ind) { settimeout(function(){console.log(ind);}, 1000 * ind); })(i); }
javascript settimeout
No comments:
Post a Comment