【发布时间】:2014-11-09 05:56:54
【问题描述】:
如何从回调中访问父作用域。回调是函数 (err, obj)。 var to_user_id 在所有迭代中都是相同的。看起来回调是在所有迭代完成后处理的,因此 var to_user_id 只是所有回调的一个值。
for(var i = 0, len = keys.length; i < len; i++) {
to_user_id = keys[i].replace('m', '')
client.get(keys[i], function (err, obj) {
//var not updating, why is both to_user_id=77
console.log("match: to_user_id=" + to_user_id + " from_user_id=" + obj)
var match = "match: to_user_id=" + to_user_id + " from_user_id=" + obj
io.emit(1, match);
});
}
输出
查看两次迭代的 to_user_id 如何为 77。一个应该是 6,最后一个应该是 77。
匹配:to_user_id=77 from_user_id=77
匹配:to_user_id=77 from_user_id=6
client.get 是一个 redis 函数,以防万一。
【问题讨论】:
标签: javascript node.js redis