Return the new message for sendMessage and pin RPCs. Pass it through the sendMessage Promise callback.
This commit is contained in:
@@ -752,7 +752,8 @@ Cosmopolite.prototype.registerMessageHandlers_ = function() {
|
||||
* Callback for a sendMessage RPC ack by the server.
|
||||
*
|
||||
* @param {Cosmopolite.typeMessage} message Message details.
|
||||
* @param {?function()} resolve Promise resolution callback.
|
||||
* @param {?function(Cosmopolite.typeMessage)} resolve Promise resolution
|
||||
* callback.
|
||||
* @param {?function(Error)} reject Promise rejection callback.
|
||||
* @param {Object} response Server RPC response.
|
||||
* @private
|
||||
@@ -768,7 +769,9 @@ Cosmopolite.prototype.onMessageSent_ = function(
|
||||
var result = response['result'];
|
||||
if (result == 'ok' || result == 'duplicate_message') {
|
||||
if (resolve) {
|
||||
resolve();
|
||||
response['message']['message'] = JSON.parse(
|
||||
response['message']['message']);
|
||||
resolve(response['message']);
|
||||
}
|
||||
} else {
|
||||
if (reject) {
|
||||
|
||||
@@ -193,14 +193,16 @@ asyncTest('Complex object', function() {
|
||||
});
|
||||
|
||||
asyncTest('sendMessage Promise', function() {
|
||||
expect(1);
|
||||
expect(3);
|
||||
|
||||
var subject = randstring();
|
||||
var message = randstring();
|
||||
|
||||
var cosmo = new Cosmopolite({}, null, randstring());
|
||||
cosmo.sendMessage(subject, message).then(function() {
|
||||
cosmo.sendMessage(subject, message).then(function(msg) {
|
||||
ok(true, 'sendMessage Promise fulfilled');
|
||||
equal(msg['subject']['name'], subject);
|
||||
equal(msg['message'], message);
|
||||
cosmo.shutdown();
|
||||
start();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user