From a404e2ee827236ccbeafbae3821fd5c9920f3929 Mon Sep 17 00:00:00 2001 From: Laurynas Karvelis Date: Sun, 18 Feb 2018 12:40:21 +0200 Subject: [PATCH] Emit bot errors inside inner catch promise chain handlers --- src/functions/poll.js | 3 ++- src/index.js | 27 ++++++++++++++++++--------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/functions/poll.js b/src/functions/poll.js index 27b640f..089131a 100644 --- a/src/functions/poll.js +++ b/src/functions/poll.js @@ -11,7 +11,8 @@ export default function poll(bot) { } return poll(bot); }) - .catch(() => { + .catch(e => { + bot.emit('error', e); return poll(bot); }); } diff --git a/src/index.js b/src/index.js index 2710b06..445124c 100644 --- a/src/index.js +++ b/src/index.js @@ -75,17 +75,22 @@ export default class Bot extends EventEmitter { if (hook) { return webhook(hook, this); } - return this.api.getMe().then(response => { - this.info = response.result; + return this.api.getMe() + .then(response => { + this.info = response.result; - this.on('update', this._update); + this.on('update', this._update); - if (hook) { - return webhook(hook, this); - } + if (hook) { + return webhook(hook, this); + } - return poll(this); - }); + return poll(this); + }) + .catch(e => { + this.emit('error', e); + throw e; + }); } /** @@ -138,7 +143,11 @@ export default class Bot extends EventEmitter { * @return {unknown} returns the result of calling message's send method */ send(message) { - return message.send(this); + return message.send(this) + .catch(e => { + this.emit('error', e); + throw e; + }); } /**