feature: add event listeners to get answers from Base.send method only when explicitly asked #47

Merged
laurynas-karvelis merged 3 commits from feature/prevent-event-listener-overflow into master 2018-12-24 12:00:50 +00:00

View File

@ -25,9 +25,10 @@ export default class Base extends EventEmitter {
* gets the Update object containing message
*
* @param {object} bot
* @param {boolean} expectAnswer whether a sent message expects an answer from a contact(s)
* @return {Promise} returns a promise, resolved with message:answer
*/
send(bot) {
send(bot, expectAnswer = true) {
if (this._keyboard) {
const replyMarkup = JSON.stringify(this._keyboard.getProperties());
this.properties.reply_markup = replyMarkup;
@ -40,6 +41,12 @@ export default class Base extends EventEmitter {
return response.result.message_id;
})
.then(messageId => {
if (!expectAnswer) {
// no need to add more event callbacks for the messages that don't need expect an answer
resolve();
return;
}
const chat = this.properties.chat_id;
let answers = 0;