/var/www/greso.tech/server/nsm/node_modules/websocket-extensions/lib/pipeline
NameSizeModeActions
cell.js14700644editdlrm
functor.js15220644editdlrm
index.js14800644editdlrm
pledge.js7790644editdlrm
README.md247080644editdlrm
ring_buffer.js16710644editdlrm
Edit: /var/www/greso.tech/server/nsm/node_modules/websocket-extensions/lib/pipeline/pledge.js (779B)
'use strict'; var RingBuffer = require('./ring_buffer'); var Pledge = function() { this._complete = false; this._callbacks = new RingBuffer(Pledge.QUEUE_SIZE); }; Pledge.QUEUE_SIZE = 4; Pledge.all = function(list) { var pledge = new Pledge(), pending = list.length, n = pending; if (pending === 0) pledge.done(); while (n--) list[n].then(function() { pending -= 1; if (pending === 0) pledge.done(); }); return pledge; }; Pledge.prototype.then = function(callback) { if (this._complete) callback(); else this._callbacks.push(callback); }; Pledge.prototype.done = function() { this._complete = true; var callbacks = this._callbacks, callback; while (callback = callbacks.shift()) callback(); }; module.exports = Pledge;