Avoid Listener leaks by setting a max answer threshold
This commit is contained in:
@ -47,7 +47,7 @@ function fetch(path) {
|
||||
}
|
||||
|
||||
_unirest2['default'].post('https://api.telegram.org/bot' + path).field(data).attach(files).end(function (response) {
|
||||
if (response.statusType === 4 || response.statusType === 5) {
|
||||
if (response.statusType === 4 || response.statusType === 5 || !response.body.ok) {
|
||||
reject(response);
|
||||
} else {
|
||||
resolve(response.body);
|
||||
|
@ -14,6 +14,8 @@ function _inherits(subClass, superClass) { if (typeof superClass !== 'function'
|
||||
|
||||
var _events = require('events');
|
||||
|
||||
var ANSWER_THRESHOLD = 10;
|
||||
|
||||
/**
|
||||
* Base class of all classes
|
||||
*/
|
||||
@ -67,7 +69,10 @@ var Base = (function (_EventEmitter) {
|
||||
}
|
||||
|
||||
var chat = _this.properties.chat_id;
|
||||
var answers = 0;
|
||||
bot.on('update', function listener(result) {
|
||||
answers += result.length;
|
||||
|
||||
var update = result.find(function (_ref) {
|
||||
var message = _ref.message;
|
||||
|
||||
@ -86,6 +91,10 @@ var Base = (function (_EventEmitter) {
|
||||
|
||||
bot.removeListener('update', listener);
|
||||
}
|
||||
|
||||
if (answers >= ANSWER_THRESHOLD) {
|
||||
bot.removeListener('update', listener);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user