2012-09-20 62 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,希望這有助於您瞭解回調編碼風格。

相關問題