From 4d1899a043fcfc0e13ce5ae2d46dae099938835c Mon Sep 17 00:00:00 2001 From: Matt Broadstone Date: Thu, 11 Jun 2015 13:53:23 -0400 Subject: [PATCH] feat(link-addCredits): make addCredits public and promisified --- lib/link.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/link.js b/lib/link.js index 91c6978..a790d55 100644 --- a/lib/link.js +++ b/lib/link.js @@ -140,10 +140,11 @@ Link.prototype._flowReceived = function(flowFrame) { } }; -Link.prototype._addCredits = function(credits, flowOptions) { +Link.prototype.addCredits = function(credits, flowOptions) { if (this.role === constants.linkRole.sender) { throw new exceptions.InvalidStateError('Cannot add link credits as a sender'); } + var opts = flowOptions || {}; this.linkCredit += credits; this.totalCredits += credits; @@ -160,6 +161,17 @@ Link.prototype._addCredits = function(credits, flowOptions) { var flow = new FlowFrame(opts); flow.channel = this.session.channel; this.session.connection.sendFrame(flow); + + var self = this; + return new Promise(function(resolve, reject) { + self.once(Link.CreditChange, function() { + resolve(); + }); + + self.once(Link.ErrorReceived, function(error) { + reject(error); + }); + }); }; Link.prototype._checkCredit = function() {