node redis将数据传递给回调

时间:2017-11-21 14:12:51

标签: node.js redis

我正在使用redis npm模块,我想将一些数据(例如for循环的索引)传递给回调,以便我可以将本地数据(函数调用时的值)映射到响应数据。如:

redisClient.get('a', [data1, data2], function(err, res, data1, data2){ 

/*more code */ 
})

我已经查过了文档,但找不到任何提及的内容。

2 个答案:

答案 0 :(得分:0)

我建议你改用promise,因为它比较干净。

以下是一个简短的例子

const Promise = require('bluebird')
const redis = require('redis');
Promise.promisifyAll(redis.RedisClient.prototype);
Promise.promisifyAll(redis.Multi.prototype);

const client = redis.createClient() // U can put your redis credentials here.

async function someFunc() {
  try {
    for (const i = 0; i < 10; i++) {
      const result = await client.getAsync()
      // do stuffs with your result
    }
  }
  catch (error) {
  // handle your error
  }
}

答案 1 :(得分:0)

function redisGet(_data1, _data2, callback){
  redisClient.get('a', function(err, res){ 
    callback(err, res, _data1, _data2)
  })
}

redisGet(data1, data2, function(err, res, data1, data2){ 

  /*more code*/ 
})

我最后只是简单地将请求包装在一个函数中。