diff options
Diffstat (limited to 'node_modules/bluebird/js/release/async.js')
-rw-r--r-- | node_modules/bluebird/js/release/async.js | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/node_modules/bluebird/js/release/async.js b/node_modules/bluebird/js/release/async.js index 41f665564..73cdc6110 100644 --- a/node_modules/bluebird/js/release/async.js +++ b/node_modules/bluebird/js/release/async.js @@ -126,24 +126,28 @@ if (!util.hasDevTools) { }; } -Async.prototype._drainQueue = function(queue) { +function _drainQueue(queue) { while (queue.length() > 0) { - var fn = queue.shift(); - if (typeof fn !== "function") { - fn._settlePromises(); - continue; - } + _drainQueueStep(queue); + } +} + +function _drainQueueStep(queue) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + } else { var receiver = queue.shift(); var arg = queue.shift(); fn.call(receiver, arg); } -}; +} Async.prototype._drainQueues = function () { - this._drainQueue(this._normalQueue); + _drainQueue(this._normalQueue); this._reset(); this._haveDrainedQueues = true; - this._drainQueue(this._lateQueue); + _drainQueue(this._lateQueue); }; Async.prototype._queueTick = function () { |