小编典典

hget块内的hdel阻塞nodejs redis

redis

我正在尝试在hget块内的node.js中执行hdel命令。这是代码:

client.hget(requests[i], "client", function(err, client){
if(isUser == true){
    client.hdel(requests[i], function(err){
          if(err){
                 console.log("cannot process request");
              }
     });
    }
});

它不起作用,我不明白为什么!任何帮助将不胜感激。


阅读 455

收藏
2020-06-20

共1个答案

小编典典

由于您使用request [i]作为参数,因此我们可以假定此代码块被封装在循环中:也许您正在尝试对数组进行迭代并为每个项目执行hget / hdel。

在这种情况下,您很有可能会被Javascript的作用域规则所困扰:requests [i]是闭包的一部分,但是闭包只能在函数级别(而不是块级别)定义。

您可能需要定义一个内部函数,或使用forEach迭代您的容器。

2020-06-20