Javascript 如何使用Redis实现这一点?基本上是将回调值存储到变量

Javascript 如何使用Redis实现这一点?基本上是将回调值存储到变量,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,我的数据结构如下所示,位于redis中。我想获取列表中的所有值以及其他集合中的相关数据。 数据结构: 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" 我想从列表中获取所有值,并设置相关的值 我试着在下面这样做 var redis

我的数据结构如下所示,位于
redis
中。我想获取
列表中的所有值以及其他
集合中的相关数据。

数据结构:

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"
我想从
列表
中获取所有值,并设置相关的

我试着在下面这样做

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});
                   });
             });

由于这是一个异步函数调用返回,在这里不起作用,如果您想继续处理响应数据,您必须稍微重新构造代码并传入另一个回调函数


我已经发布了一个类似问题的简短示例,看看这里,希望这有助于您了解回调编码风格。

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

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

祝你好运