Possible Duplicate:
How to Use setTimeout in a for…loop
calling setTimeout with a for loop
For me, setTimeout
function doesn't work inside for loop. It executes after all for loop statements are executed.
I am facing with this scope issue in case of setTimeout
function in javascript.
Here's my code snippet ..
... moves[] is an array ..
for(i=0;i<noOfMoves;i++) {
playerName = moves[i].playerName;
timeDiff = moves[i].timeDiff;
console.log("Inside for loop"+ playerName);
setTimeout(function(){
console.log("Inside set time out :"+playerName);
},timeDiff);
....
....
}
But it awkwardly prints out the following output ...
Inside for loopplayer1
Inside for loopplayer2
Inside for loopplayer3
Inside for loopplayer4
.... (noOfMoeves times .. )
Inside set time outplayer1
Inside set time outplayer1
Inside set time outplayer1
Inside set time outplayer1
EDIT :
I am wanting o/p of following way
I am expecting the code to go line by line .. printing "Inside for loop
" console log first, then wait for "timeDiff
" period and then print the "Inside settimeout
" function console log .. how can i do that ? –
Inside for loopplayer1
Inside set time outplayer1 // (after waiting for timeDiff time)
Inside for loopplayer2
Inside set time outplayer2 // (after waiting for timeDiff time)
......
......
Also, playerName variable is getting same value in each settimeout console log statement ?