You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询node-redis中PUBSUB CHANNELS的正确使用语法

node-redis 调用 PUBSUB CHANNELS 无输出问题解决

你当前的代码存在两个关键问题,导致控制台没有输出:

  1. 参数传递错误:sendCommand 的第一个参数应该是包含命令名和参数的数组,但你用了 ('PUBSUB CHANNELS', []) 这种逗号表达式写法,实际只把空数组传给了函数,命令名根本没传对。
  2. 混用异步语法:你同时用了 await 和回调函数,node-redis 中这两种方式不能同时使用——用 await 时会直接返回结果,不需要回调;用回调时则不需要加 await。

正确写法示例

方式一:使用 await 异步语法

try {
  const result = await redis.sendCommand(['PUBSUB', 'CHANNELS']);
  console.log(result);
} catch (err) {
  console.error(err);
}

方式二:使用回调函数

redis.sendCommand(['PUBSUB', 'CHANNELS'], function(err, result) {
  if (err) {
    console.error(err);
    return;
  }
  console.log(result);
});

另外,node-redis 还提供了更直观的封装方法,也可以直接调用:

// await 方式
const channels = await redis.pubSub.channels();
console.log(channels);

// 回调方式
redis.pubSub.channels(function(err, channels) {
  if (err) {
    console.error(err);
    return;
  }
  console.log(channels);
});

内容的提问来源于stack exchange,提问作者Hulk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:24:50