javascript - 如何在请求调用时将值传递给回调函数?

标签 javascript node.js

我有以下情况:

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/

相关文章:

javascript - 在外部 JS 文件中时,JS 时钟不起作用

javascript - 在循环中设置 Object.defineProperty 时遇到问题

javascript - 如何将网站上的图片保存到手机相册?

javascript - Canvas 旋转 - JavaScript

javascript - 如何从 <select> 获取值并使用它

javascript - Gmail API发送电子邮件错误401 :Invalid Credentials

node.js - React 浏览器兼容性低至 ie11

javascript - 在多行更新中使用 'skip' 选项

node.js - 带有html-pdf的AWS Lambda上的“ERROR Error: write EPIPE”

node.js - couchbase集群和nodejs分布式架构