Added result storing in promise - useful for queue code

This commit is contained in:
hydrabolt
2015-08-30 16:25:42 +01:00
parent bb53b65cf5
commit c2e282c813
3 changed files with 23 additions and 14 deletions

View File

@@ -593,7 +593,7 @@ var Client = (function () {
var self = this; var self = this;
return new Promise(function (resolve, reject) { var prom = new Promise(function (resolve, reject) {
message = premessage + resolveMessage(message); message = premessage + resolveMessage(message);
var mentions = resolveMentions(); var mentions = resolveMentions();
@@ -615,8 +615,8 @@ var Client = (function () {
action: "sendMessage", action: "sendMessage",
content: message, content: message,
mentions: mentions, mentions: mentions,
then: [resolve, callback], then: [mgood],
error: [reject, callback] error: [mbad]
}); });
self.checkQueue(destination); self.checkQueue(destination);
@@ -626,11 +626,13 @@ var Client = (function () {
} }
function mgood(msg) { function mgood(msg) {
prom.message = msg;
callback(null, msg); callback(null, msg);
resolve(msg); resolve(msg);
} }
function mbad(error) { function mbad(error) {
prom.error = error;
callback(error); callback(error);
reject(error); reject(error);
} }
@@ -673,6 +675,8 @@ var Client = (function () {
return _mentions; return _mentions;
} }
}); });
return prom;
} }
//def createws //def createws
@@ -1411,12 +1415,10 @@ var Client = (function () {
var msgToSend = queuedEvent; var msgToSend = queuedEvent;
self._sendMessage(channelID, msgToSend.content, msgToSend.mentions).then(function (msg) { self._sendMessage(channelID, msgToSend.content, msgToSend.mentions).then(function (msg) {
msgToSend.then[0](msg); msgToSend.then[0](msg);
msgToSend.then[1](null, msg);
self.messageQueue[channelID].shift(); self.messageQueue[channelID].shift();
doNext(); doNext();
})["catch"](function (err) { })["catch"](function (err) {
msgToSend["catch"][0](err); msgToSend["catch"][0](err);
msgToSend["catch"][1](err);
self.messageQueue[channelID].shift(); self.messageQueue[channelID].shift();
doNext(); doNext();
}); });

View File

@@ -611,7 +611,7 @@ class Client {
var self = this; var self = this;
return new Promise(function (resolve, reject) { var prom = new Promise(function (resolve, reject) {
message = premessage + resolveMessage(message); message = premessage + resolveMessage(message);
var mentions = resolveMentions(); var mentions = resolveMentions();
@@ -633,8 +633,8 @@ class Client {
action: "sendMessage", action: "sendMessage",
content: message, content: message,
mentions: mentions, mentions: mentions,
then: [resolve, callback], then: [mgood],
error: [reject, callback] error: [mbad]
}); });
self.checkQueue(destination); self.checkQueue(destination);
@@ -645,11 +645,13 @@ class Client {
} }
function mgood(msg) { function mgood(msg) {
prom.message = msg;
callback(null, msg); callback(null, msg);
resolve(msg); resolve(msg);
} }
function mbad(error) { function mbad(error) {
prom.error = error;
callback(error); callback(error);
reject(error); reject(error);
} }
@@ -671,6 +673,8 @@ class Client {
} }
}); });
return prom;
} }
//def createws //def createws
@@ -1172,13 +1176,11 @@ class Client {
self._sendMessage(channelID, msgToSend.content, msgToSend.mentions) self._sendMessage(channelID, msgToSend.content, msgToSend.mentions)
.then(function (msg) { .then(function (msg) {
msgToSend.then[0](msg); msgToSend.then[0](msg);
msgToSend.then[1](null, msg);
self.messageQueue[channelID].shift(); self.messageQueue[channelID].shift();
doNext(); doNext();
}) })
.catch(function (err) { .catch(function (err) {
msgToSend.catch[0](err); msgToSend.catch[0](err);
msgToSend.catch[1](err);
self.messageQueue[channelID].shift(); self.messageQueue[channelID].shift();
doNext(); doNext();
}); });

View File

@@ -7,10 +7,15 @@ var server, channel, message, sentMessage = false;
mybot.on("message", function(message){ mybot.on("message", function(message){
if(message.content === "$$$"){ if( mybot.user.equals(message.sender) ){
for(var x=1;x<=10;x++){ return;
mybot.sendMessage(message.channel, "this is message " + x); }
}
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);
} }
}); });