2013-02-24 128 views
0

我對以下代碼片段有所懷疑。如何在node.js中使用異步回調來同步變量

for(var i=0; i<5; i++){ 
    http.request(option, function(res){ 
     console.log(i) 
    }); 
} 

這將「i」的值打印爲5次,共5次。有什麼辦法可以使'i'的值與可打印的函數(res)同步0,1,2,3,4

+0

哦,經典問題。裹在一個IIFE – 2013-02-24 07:28:05

回答

2

你必須給變量正確的範圍。嘗試這樣的:

for(var i=0; i<5; i++){ 
    (function(key) { 
     http.request(option, function(res){ 
      console.log(key) 
     }); 
    })(i); 
}