diff --git a/lib/Client.js b/lib/Client.js index 7511a6d27..2087799c0 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -593,7 +593,7 @@ var Client = (function () { var self = this; - return new Promise(function (resolve, reject) { + var prom = new Promise(function (resolve, reject) { message = premessage + resolveMessage(message); var mentions = resolveMentions(); @@ -615,8 +615,8 @@ var Client = (function () { action: "sendMessage", content: message, mentions: mentions, - then: [resolve, callback], - error: [reject, callback] + then: [mgood], + error: [mbad] }); self.checkQueue(destination); @@ -626,11 +626,13 @@ var Client = (function () { } function mgood(msg) { + prom.message = msg; callback(null, msg); resolve(msg); } function mbad(error) { + prom.error = error; callback(error); reject(error); } @@ -673,6 +675,8 @@ var Client = (function () { return _mentions; } }); + + return prom; } //def createws @@ -1411,12 +1415,10 @@ var Client = (function () { var msgToSend = queuedEvent; self._sendMessage(channelID, msgToSend.content, msgToSend.mentions).then(function (msg) { msgToSend.then[0](msg); - msgToSend.then[1](null, msg); self.messageQueue[channelID].shift(); doNext(); })["catch"](function (err) { msgToSend["catch"][0](err); - msgToSend["catch"][1](err); self.messageQueue[channelID].shift(); doNext(); }); diff --git a/src/Client.js b/src/Client.js index 021b9d4e3..382f0d4f3 100644 --- a/src/Client.js +++ b/src/Client.js @@ -611,7 +611,7 @@ class Client { var self = this; - return new Promise(function (resolve, reject) { + var prom = new Promise(function (resolve, reject) { message = premessage + resolveMessage(message); var mentions = resolveMentions(); @@ -633,8 +633,8 @@ class Client { action: "sendMessage", content: message, mentions: mentions, - then: [resolve, callback], - error: [reject, callback] + then: [mgood], + error: [mbad] }); self.checkQueue(destination); @@ -645,11 +645,13 @@ class Client { } function mgood(msg) { + prom.message = msg; callback(null, msg); resolve(msg); } function mbad(error) { + prom.error = error; callback(error); reject(error); } @@ -671,6 +673,8 @@ class Client { } }); + + return prom; } //def createws @@ -1172,13 +1176,11 @@ class Client { self._sendMessage(channelID, msgToSend.content, msgToSend.mentions) .then(function (msg) { msgToSend.then[0](msg); - msgToSend.then[1](null, msg); self.messageQueue[channelID].shift(); doNext(); }) .catch(function (err) { msgToSend.catch[0](err); - msgToSend.catch[1](err); self.messageQueue[channelID].shift(); doNext(); }); diff --git a/test/bot.1.js b/test/bot.1.js index ad985f505..6d4c5734d 100644 --- a/test/bot.1.js +++ b/test/bot.1.js @@ -7,10 +7,15 @@ var server, channel, message, sentMessage = false; mybot.on("message", function(message){ - if(message.content === "$$$"){ - for(var x=1;x<=10;x++){ - mybot.sendMessage(message.channel, "this is message " + x); - } + if( mybot.user.equals(message.sender) ){ + return; + } + + var action1 = mybot.sendMessage(message.channel, "this is message " + 1); + var action2 = mybot.sendMessage(message.channel, "this is message " + 2).then(log); + + function log(){ + mybot.sendMessage(message.channel, action1.message ? action1.message : action1.error); } });