我有以下情况:
var foo = [ 0, 1, 2 ]
for (var i in foo) {
Asyncstuff.get(URI).on('response', function(res) { console.log(i); } });
}
因为 .on('response',...) 是以异步方式调用的,所以输出很可能是
2
2
2
是否可以在调用 .get() 时将 i 的值传递给回调函数?
最佳答案
你需要一个闭包。有比这更好的方法,但这应该清楚地展示这个概念:
var foo = [ 0, 1, 2 ]
for (var i in foo) {
(function(i){
Asyncstuff.get(URI).on('response', function(res) { console.log(i); } });
})(i);
}
关于javascript - 如何在请求调用时将值传递给回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892455/