diff --git a/lib/slack.js b/lib/slack.js index 5de4306e..b83de7a1 100644 --- a/lib/slack.js +++ b/lib/slack.js @@ -59,13 +59,17 @@ export default class SlackData extends EventEmitter { return channel ? channel.id: null } - retry (){ - let interval = this.interval * 2 - setTimeout(this.fetch.bind(this), interval) - this.emit('retry') + retry(delay = this.interval * 2) { + setTimeout(this.fetch.bind(this), delay); + this.emit('retry'); } onres (err, res){ + // Too Many Requests + if (res.status === 429) { + return this.retry(res.headers['retry-after'] * 1000); + } + if (err) { this.emit('error', err) return this.retry()