我正在尝试从 Redis 获取一些值,将它们组合起来并最终发送。但我就是无法兑现这些 promise 。
这是来自redis的简单get
函数
client.get('user:1:id',function(err,data){
// here I have data which contains user ID
});
client.get('user:1:username',function(err,data){
// here I have data which contains username
});
现在我想获取 ID
和 username
并发送它们,但我不知道如何实现。我设法让它与回调一起工作,但结果非常困惑,所以我尝试将匿名函数包装到 Q.fcall
并在调用 .then
之后看起来像那个
client.get('user:1:id',Q.fcall(function(err,data){
return data;
}).then(function(val) {
// do something
}));
但是由于传递了太多参数,这给了我错误,我什至不确定这是否对我有帮助,即使它会起作用。
最佳答案
Q.all([Q.ninvoke(client, 'get', 'user:1:id'),
Q.ninvoke(client, 'get', 'user:1:username')]).then(function (data) {
var id = data[0];
var username = data[1];
// do something with them
});
关于node.js - nodejs redis Q promises,如何让它发挥作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390075/