gpt4 book ai didi

javascript - node_redis 客户端 - 无法从查询返回值

转载 作者:行者123 更新时间:2023-11-28 05:39:26 27 4
gpt4 key购买 nike

我对一个无法找到解决方案的问题感到疯狂。我无法从 Redis 查询中返回值。我使用 node_redis 客户端 ( http://redis.js.org/ ) 作为 Node.JS 的 redis 驱动程序。

问题是:我编写了一个函数来获取用户状态连接并将其返回以从其他函数获取值。

//CHECK USER STATUS
exports.checkUserStatus = function(uid){
redis.multi()
.sismember('users:online',uid)
.sismember('users:iddle', uid)
.sismember('users:out', uid)
.sismember('users:locked', uid)
.exec(function(err, res){
res.forEach(function(res, index){
if(res != 0){
switch(index){
case 0:
return 'online';
break;
case 1:
return 'iddle';
break;
case 2:
return 'out';
break;
case 3:
return 'locked';
break;
default:
return 'offline';
}
}
});
})
}

但是函数没有返回任何内容!如果我用 console.log() 替换返回行,它就可以工作!但我不需要 console.log(),我需要获取该值。

我也尝试在查询外部创建一个变量并从内部设置它,然后返回它,但是它不起作用。

有人知道我该怎么做吗?

谢谢!

最佳答案

我不是 Redis 专家,但是......也许您只是缺少 return 关键字?

var result;
exports.checkUserStatus = function(uid){
redis.multi()
...
.exec(function(err, res){
res.forEach(function(res, index){
if(res != 0){
switch(index){
case 0:
result = 'online';
break;
case 1:
result ='iddle';
break;
case 2:
result = 'out';
break;
case 3:
result = 'locked';
break;
default:
result = 'offline';
}
}
});
})
return result;
}

基于 http://redis.io/commands/MULTI 的手册multi 返回值,而您不返回该值。

关于javascript - node_redis 客户端 - 无法从查询返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com