1. 程式人生 > >for迴圈中的非同步問題

for迴圈中的非同步問題

   function f1(){
        for(var i = 0; i < 10; i++) {
            setTimeout(function() {
                console.log(i); 
            }, 1000);
        }
    }
    f1();
    //改為下面的寫法即可獲取正確i的值
    function f2(){
        for(var i = 0; i < 10; i++) {
            (function(e) {
                setTimeout(function
() {
console.log(e); }, 1000); })(i); } } f2();

在實際專案中這種寫法有很多侷限,es6中的promise函式或者Async/Await來解決最好。