-2

我正在尝试在 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");
              }
     });
    }
});

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

4

1 回答 1

0

由于您使用 requests[i] 作为参数,我们可以假设这段代码被封装在一个循环中:也许您正试图迭代一个数组并为每个项目执行 hget/hdel。

在这种情况下,你很有可能被 Javascript 的范围规则所击中:requests[i] 是闭包的一部分,但闭包只能在函数级别(而不是块级别)定义。

您可能需要定义一个内部函数,或者使用 forEach 来迭代您的容器。更多信息在这里:

节点,redis。检查密钥是否存在,如果不存在则创建新的

For循环从redis延迟获取项目

于 2012-11-01T08:27:44.600 回答