我正在使用node_redis为一个node服务提供redis中对象的JSON表示。我认为这对于很多人来说可能是相对基础的东西,但我卡住了。在遍历所有哈希并将它们存储之前,我就已经发送了响应。以下是coffeescript代码:
objects = []
client.keys 'objects*', (err,keys) ->
for key in keys
client.hgetall key, (err,obj) ->
objects.push obj
response.end JSON.stringify objects
以及生成的JavaScript代码:
objects= [];
client.keys('objects*', function(err, keys) {
var key, _i, _len, _results;
_results = [];
for (_i = 0, _len = keys.length; _i < _len; _i++) {
key = keys[_i];
_results.push(client.hgetall(key, function(err, obj) {
return objects.push(obj);
}));
}
return _results;
});
return response.end(JSON.stringify(objects));
我不知道如何让我的代码在等待内部任务完成时进入休眠状态。我猜测有一些方法可以处理它,但我想不出来。谢谢大家。