123456789101112131415161718192021222324 |
- 'use strict'
- /**
- * Invokes all requests in the queue by passing them to the supplied callback
- * function and then clears all items from the queue.
- *
- * @param {function} cb A function used to handle the requests.
- */
- module.exports = function flush (cb) {
- if (this._timer) {
- clearTimeout(this._timer)
- this._timer = null
- }
- // We must get a local copy of the queue and clear it before iterating it.
- // The client will invoke this flush function _many_ times. If we try to
- // iterate it without a local copy and clearing first then we will overflow
- // the stack.
- const requests = Array.from(this._queue.values())
- this._queue.clear()
- for (const req of requests) {
- cb(req.message, req.expect, req.emitter, req.cb)
- }
- }
|