我需要从此功能返回回复并使用其他功能中的回复。我是NodeJs的新手并试图找出一个简单的解决方案。
var getKeys = function(key){
var addkey = key + '*'
myClient.keys(addkey, function (err, replies) {
console.log(replies);
});
}
问题2:
有没有办法在node_redis函数中获取变量?
实施例: redis_get - >定义获取值的函数
thingsUUID[i] = thingsUUIDKey[i].split("_").pop()
redis_get("key", function(redis_items) {
console.log(thingsUUID[i]);
});
在redis_get内部,thingUUID未定义。我想连接thingsUUID和结果redis_items
答案 0 :(得分:2)
您可以将myClient.keys
函数中使用的回调添加到getKeys
函数中,如下所示:
var getKeys = function(key, callback){
var addkey = key + '*'
myClient.keys(addkey, callback);
}
getKeys("EXAMPLE_KEY", function (err, replies) {
if (err) console.error(err);
console.log(replies);
});
由于myClient.keys
需要回调,因此它是异步的,您无法将此响应返回到值中。
这是一个很好的资源,可以概述回调的工作原理: https://github.com/maxogden/art-of-node#callbacks
答案 1 :(得分:0)
我不太确定您想要做什么,但如果您的变量thinksUUID
在redis_get
之外定义,则应该可以在回调中访问它:
var thinksUUID = [1,2,3,4];
var getKeys = function(key, callback){
var addkey = key + '*'
myClient.keys(addkey, callback);
}
getKeys("EXAMPLE_KEY", function (err, replies) {
if (err) console.error(err);
replies.forEach(function(item, index){
console.log(item);
console.log(thinksUUID[index]);
});
});

如果您想将变量thinksUUID
移交给定义的函数redis_get
,则需要将redis_get(key, callback)
的签名更改为redis_get(key, thinksUUID, callback)
答案 2 :(得分:0)
function myfunction3() {
let explain2 = "yes";
return explain2;
}
function myfunction4(explain2) {
if ( explain2 == "yes") {
console.log('yes');
}
}
let explain2 = myfunction3();
myfunction4(explain2);