0

我的数据结构如下所示redis。我想获得所有的价值list,它是来自其他人的相关数据sets.

数据结构 :

lpush mylist test1
lpush mylist test2
lpush mylist test3

set test1 "test1 value1"
set test1 "test1 value2"
set test2 "test2 value1"
set test2 "test2 value2"

我想从中获取所有值list和相关set值。

我在下面尝试过这样的。

var redis        = require('redis')
var redis_client = redis.createClient();


var test = redis_client.lrange(conv_id, 0, -1, function (error, response) {
                     return response;
             });

var datas = redis_client.mget(test, function (error, response) {
                     res.send("datas_text", {data: response});
             });

如何获取回调值?

但这种方式是有效的。

 redis_client.lrange(conv_id, 0, -1, function (error, response) {
                   redis_client.mget(response, function (err, datas) {
                      res.send("datas_text", {data: datas});
                   });
             });
4

2 回答 2

0

你必须记住 node.js 是异步工作的;这意味着当您的代码运行时,所有耗时的活动都被设置为在后台运行,并且应该保存返回值的变量将为空。

您要做的是创建一个回调函数,该函数将在进程完成时运行;阅读这本免费的电子书:http : //www.nodebeginner.org/ 它解释了 node.js 如何很好地工作。

祝你好运!

于 2012-09-20T15:15:20.463 回答
0

因为这是一个异步函数调用 return 在这里不起作用,如果你想继续处理响应数据,你必须稍微重构你的代码并传入另一个回调函数。

我已经发布了一个类似问题的简短示例,在这里查看回调函数和异步请求的用法,希望这对您有所帮助,并且您对回调编码风格有所了解。

于 2012-09-20T09:42:13.967 回答