使用以下代码,我可以异步访问Redis客户端,使用偶然的Node JS方式代码:
function start()
{
var redis = require("redis");
var host = "127.0.0.1";
var port = 6379;
var client = redis.createClient(port, host);
client.on("error", function (err) {
console.log("Error " + err);
});
client.set("hi", "hey", redis.print);
return client;
}
function getValue(client, callback)
{
client.get("hi", function (err, res) {
callback(res);
});
}
var c = start();
getValue(c, function(r){
console.log('Result ' + r);
});
控制台打印'结果嘿'。
我没有在getValue()函数中使用回调,而是想做一个经典的回归:
function getValue(client)
{
client.get("hi", function (err, res) {
return res;
});
}
为了拥有:
var r = getValue(c);
console.log(r);
因此要对Redis服务器进行同步调用。我试过异步,纤维,...库,但我卡住了,不知道怎么做......
谢谢。
答案 0 :(得分:0)
可以在以下位置找到类似的主题: How to Sync call in Node.js
您可以考虑使用step或node-finish来实现您的目标
答案 1 :(得分:0)
您可能希望将回调传递给client.set()调用。
client.set("hi", "hey", function (err, res) {
cb(err, res);
})