2016-06-04 3 views
0

Я сейчас играю с Nodes.js и создаю простой бот как доказательство концепции. Я использую пакет discord.js.TypeError не является функцией

У меня есть следующие коды

// FluffBot class initialisation 
var FluffBot = function Constructor(settings, commands) { 
    this.settings = settings 
    this.commands = commands 
} 

// Run bot 
FluffBot.prototype.run = function() { 
    discord = new discord.Client() 
    discord.loginWithToken(this.settings.bot_token) 
    discord.on('ready', function(event) { 
     FluffBot._onReady(event) 
    }) 
} 

// On ready function 
FluffBot.prototype._onReady = function(event) { 
    discord.setPlayingGame('Alpha v1.0') 
    this.watcher() 
} 

Я инициируя функцию запуска в другом файле JS, но я получаю следующую ошибку

TypeError: FluffBot._onReady is not a function at Client.<anonymous>

Любые идеи о получении его для вызова функции было бы здорово.

+0

Я думаю, что из-за вызова слушателя событий я бы новый инстанцировать новую версию бота. Решил реорганизовать его так, чтобы прослушиватели событий вызывали код по мере необходимости, а не пытались сделать все в одном файле. –

ответ

1

Вы уверены, что FluffBot был создан с помощью ключевого слова new?

Вы можете добавить это предотвратить:

if (!(this instanceof FluffBot)) { 
    return new FluffBot() 
} 
+0

У меня создалось впечатление, что, поскольку он отличается от того же класса, который был создан для вызова run, вызывающий ._onReady будет в порядке –

Смежные вопросы