2013-02-24 92 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); 
}