Redis使用QUEUED作为参数值调用回调

时间:2013-09-21 07:30:42

标签: node.js redis

我正在测试一个带有mocha的模块,该场景是一个小类,它有方法,带有必需的回调参数。

当我在第一个describe上运行测试时,它会获得预期结果,当它在第二个和第三个describebeforeEachafterEach上运行时创建一个新的redis客户端,并在它应该结束时调用end()

client.hget('profile:1','name',function(error,profileID){ /* <= profileID value is QUEUED */
 console.log(profileID); //<= QUEUED 
 });

为什么回调会将QUEUED作为其参数的值?它没有任何错误..

2 个答案:

答案 0 :(得分:1)

尝试添加

if (error) console.log(error);

或更好的调试:

client.hget('profile:1','name',redis.print);

除非你告诉我,否则Redis不会抛出杀死进程的异常,除非你告诉它。

这取决于您的代码,但您可能需要等待connectidle事件

类似的东西:

client.on("idle",function(){
//Your code here 
});

答案 1 :(得分:0)

看起来,最终需要进行大量的调试,它创建的脚本是redis客户端,关闭它们,并尝试发送命令,但客户端已经关闭了。在多数组参数(难以发现)中的redis命令中也有一些次要的语法错误