首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用自定义Redis命令/模块后不触发IORedis或(node_redis)回调

调用自定义Redis命令/模块后不触发IORedis或(node_redis)回调
EN

Stack Overflow用户
提问于 2019-02-04 21:53:31
回答 1查看 827关注 0票数 0

当在nodejs应用程序中的websocket消息事件中使用redis客户端(ioredis或node_redis)时,不会立即触发任何命令的回调。(操作确实在redis服务器上进行)

奇怪的是,第一个命令的回调将在我发送第二条消息之后触发,而第二个回调将在发送第三个消息后触发。

代码语言:javascript
复制
wss.on('connection', (socket, request) => {

     socket.on('message', (data) => {

      console.log("will send test command")
      this.pubClient.hset("test10", "f1","v1", (err,value) => {
          //callback not firing first time
          console.log("test command reply received")
       })

    })

}

redis命令可以像预期的那样工作,但是在应用程序的其他部分,甚至在on连接内部也是如此,如下所示。

代码语言:javascript
复制
wss.on('connection', (socket, request) => {

    console.log("will send test command")
    this.pubClient.hset("test10", "f1","v1", (err,value) => {
        //callback fires
        console.log("test command reply received")
    })

    socket.on('message', (data) => {})
}

更新:

我都错了。出现奇怪的回调行为的原因是由于我的一个定制Redis模块没有返回回复。这似乎导致了这个呼叫之后的所有回调似乎都有某种一步延迟。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 08:04:54

我都错了。出现奇怪的回调行为的原因是由于我的一个定制Redis模块没有返回回复。这似乎导致了这个呼叫之后的所有回调似乎都有某种一步延迟。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54524873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档