Я пытаюсь создать Twitch Bot, используя Electron и репозиторий tmi.js, и я хочу, чтобы программа сохранила данные (например, имя пользователя, токен OAuth и т. Д.) В файле .json.Когда я снова открываю свое приложение, оно мгновенно читает файл и создает объект параметров со всеми настройками (для API twitch
).Это все работает нормально, но событие client.on из репозитория tmi.js выдает мне сообщение об ошибке: «Не удается прочитать свойство« on »из undefined».
Код файла чтения:
fs.readFile("connectionSettings.json", (err, data) => {
if (err){
console.log(err);
} else {
channelData = JSON.parse(data);
options = {
options: {
debug: true
},
connection: {
cluster: "aws",
reconnect: true
},
identity: {
username: channelData[1],
password: channelData[2]
},
channels:[channelData[0]]
};
client = new tmi.client(options);
client.connect();
}
})
событие клиента в чате:
client.on("chat", function(channel, userstate, message, self) {
mainWindow.webContents.send("message:add", userstate.username, message);
console.log("message");
})
переменная клиента объявляется в верхней части файла с помощью команды «let client;».
Но если я вызываю такую функцию:
function sendMessage(msg) {
client.say(options.channels[0].replace("#",""), msg)
}
все работает нормально, поэтому я предполагаю, что клиент на событии чата внизу как-то вызывается раньше, чем читается файл .json и устанавливаются переменные.
Любые идеи, как яможет это исправить?