2012-09-20 15 views
0

我的数据结构如下面的redis。我想在list所有的值,并将其从其他sets.如何实现这一点是使用Redis的节点Js/Express?基本上将回调值存储到变量

数据结构的数据relavent:

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

回答

0

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

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

祝你好运!

0

,因为这是一个异步函数调用返回不会在这里工作,你必须调整你的代码一点点,并通过在另一个回调函数,如果你想继续响应数据的工作。

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

相关问题