首先,对于模糊的标题感到抱歉。我不知道如何在标题中总结我的问题。
我正在学习NodeJS
&表达并决定构建一个 TwitchTV聊天机器人作为一个小练习。为此我正在使用tmijs
。
以下是我目前面临的问题:
function getActivatedChannels() {
var channels = [];
User.find(function(err, users) {
if (err) console.error(err);
for (var i = 0; i < users.length; i++) {
if (users[i].activated) {
channels.push(users[i].name);
}
}
console.log(channels);
});
return channels;
}
//tmi.js options
var options = {
options: {
debug: true
},
connection: {
cluster: 'aws',
reconnect: true
},
identity: {
username: credentials.tmijs.username,
password: credentials.tmijs.password
},
channels: getActivatedChannels()
};
var client = new tmi.client(options);
client.connect();
这里的问题是getActivatedChannels()
似乎需要太长时间。在第一个函数解析之前调用client.connect()
,导致客户端无法连接到任何通道。解决这个问题的方法是将setTimeout()
中的var选项后的所有内容包装起来,但这似乎不是解决此问题的好方法。
有什么更好的方法可以解决这个问题?