您需要通过在循环中引入一个函数来使用闭包来存储user_id。一种方法是使用forEach函数在数组上进行迭代。
这是Javascript中的示例:
var redis = require('redis')var client = redis.createClient();function fetch( callback ) { var results = new Array(); client.smembers( "users", function(err,users) { if ( users.length == 0 ) return callback( results ); users.forEach( function(id) { client.hgetall(id, function(err,items) { var obj = {}; obj[id] = items; # here id can be accessed since it is part of the closure results.push(obj); if ( results.length == users.length ) { callback( results ); } }); }); });}fetch( function(results) { console.log(JSON.stringify(results));});输出为:
[ {"user:2":{"name":"user2","password":"secret2"}}, {"user:1":{"name":"user1","password":"secret"}} ]


