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

これは非同期関数呼び出しであるため、ここでは戻り値は機能しません。応答データの操作を続行する場合は、コードを少し再構築し、別のコールバック関数を渡す必要があります。

同様の質問の簡単な例を投稿しました。ここをご覧ください。コールバック関数と非同期リクエストの使用法。これがお役に立てば、コールバックコーディングスタイルのアイデアが得られます。

于 2012-09-20T09:42:13.967 に答える
0

node.jsは非同期で動作することを覚えておく必要があります。つまり、コードを実行すると、時間のかかるすべてのアクティビティがバックグラウンドで実行されるように設定され、戻り値を保持するはずの変数がnullになります。

あなたがしなければならないのは、プロセスが終了したときに実行されるコールバック関数を作成することです。この無料の電子ブックを読んでください:http : //www.nodebeginner.org/それはnode.jsがどのように非常にうまく機能するかを説明しています。

幸運を!

于 2012-09-20T15:15:20.463 に答える