Friday, September 29, 2017

How to guarantee the order of execution in JavaScript?

Use setTimeout() to ensure code is executed in the desired order.


for(i=0; i<100; i++){
setTimeout(function() { console.log(1); }, 0); 
setTimeout(function() { console.log(2); }, 0); 
setTimeout(function() { console.log(3); }, 0);
setTimeout(function() { console.log('-----'); }, 0);
}


1
2
3
-----
1
2
3
-----
1
2
3
-----
1
2
3
-----
.........
.........


for(i=0; i<100; i++){
 setTimeout(function() {
    console.log(1);
    setTimeout(function() {
        console.log(2)
        setTimeout(function() {
            console.log(3)
            }, 0)
        }, 0) 
 }, 0) 
}

100  1
100  2
100  3