Node.js 通道阵列没有';我不在公共场所工作

Node.js 通道阵列没有';我不在公共场所工作,node.js,publish-subscribe,pubnub,Node.js,Publish Subscribe,Pubnub,我试图用一些频道创建一个数组列表,但没有收到订阅的消息。示例代码: var channels_list = [ 'channel1','channel2','channel3' ]; pubnub.subscribe({ channels: channels_list }); 如果我更改此代码,我可以接收消息 pubnub.subscribe({ channels: [ 'channel1','channel2','channel3' ] }); 为什么第一个选项不起作用?

我试图用一些频道创建一个数组列表,但没有收到订阅的消息。示例代码:

var channels_list = [ 'channel1','channel2','channel3' ]; 
pubnub.subscribe({
    channels: channels_list
});
如果我更改此代码,我可以接收消息

pubnub.subscribe({
    channels: [ 'channel1','channel2','channel3' ]
});
为什么第一个选项不起作用?我做错了什么

这是我的nodejs脚本

var PubNub = require('pubnub');
var MongoClient = require('mongodb').MongoClient;

var url_mongo = "mongodb://localhost/database";
var db;
var channels_list = [];

MongoClient.connect(url_mongo, function(err, _db) {
    if (err) console.log("Error: ", err);
    console.log("Connected to mongodb");
    db = _db;
    init();
});

function init() {
    pubnub = new PubNub({
        subscribeKey : '...',
        logVerbosity:true
    });

    getAllChannels();

    pubnub.addListener({
        status: function(event) {
            console.log("status: " + JSON.stringify(event));
        },
        message: function(event) {
            console.log("message: " + JSON.stringify(event));
        },
        presence: function(event) {
            console.log("presence: " + JSON.stringify(event));
        }
    });

    pubnub.subscribe({
        channels  : channels_list
    });

    function getAllChannels() {
        db.collection("channels").find({}).toArray(function(err, docs){
            if(err) console.log(err);
            else{
                channels_list = [];

                for(i = 0; i != docs.length; i++){
                    channels_list.push('channel-'+docs[i]._id);
                }

                console.log(channels_list);
            }
        });
    }
}
与MongoDB的连接正确,通道列表中有通道。我验证这部分


就JavaScript而言,它们是相同的!它们应该是一样的。看起来都对这两种方法对我都有效。你能提供完整的脚本来重现你的问题吗。你使用的是什么版本的PubNub Node SDK?我想发布一个新的答案。堆栈溢出协议是将代码添加到原始问题(编辑)中,除非你的代码是答案。就JavaScript而言,这些都是相同的!它们应该是一样的。看起来都对这两种方法对我都有效。你能提供完整的脚本来重现你的问题吗。您使用的是什么版本的PubNub Node SDK?我想发布一个新的答案堆栈溢出协议是将代码添加到原始问题(编辑)中,除非您的代码是答案。