我正在使用redis npm模块,我想将一些数据(例如for循环的索引)传递给回调,以便我可以将本地数据(函数调用时的值)映射到响应数据。如:
redisClient.get('a', [data1, data2], function(err, res, data1, data2){
/*more code */
})
我已经查过了文档,但找不到任何提及的内容。
答案 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*/
})
我最后只是简单地将请求包装在一个函数中。