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;
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();
});

View File

@@ -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();
});

View File

@@ -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);
}
});