redis与nodejs的多个值

时间:2015-04-01 11:31:09

标签: javascript node.js node-redis

我一直试图弄清楚如何用nodejs和redis来实现这样的东西:

    var var1 = redisClient.get("foo");
    var var2 = redisClient.get("bar");
    if (var1 && var2) {
        do_something();
    } else {
        do_something_else();
    }

我知道redis调用是异步的,但重复的是:

var var1, var2;
redisClient.get("foo", function(err, data) {
  var1 = data;
  redisClient.get("bar", function(err, data) {
    var2 = data;
    
    if (var1 && var2) {
      do_something(); 
    } else {
      do_something_else();
    }
  }
});

每次我想要访问这两个变量时,都不适合做。

2 个答案:

答案 0 :(得分:0)

您可以使用async库来控制流量:

    async.parallel([
         function(done) {
             redisClient.get("foo",done);
         },
         function(done) {
             redisClient.get("bar",done);
         }
       ],
       function(err, result) {
             //result[0] here is foo
            //result[1] here is bar
       })

答案 1 :(得分:0)

实际上我只是以错误的方式思考整件事。