Buckets:
ktongue/docker_container / CAD_kevin /frontend /node_modules /websocket-extensions /lib /pipeline /pledge.js
| ; | |
| 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; | |
Xet Storage Details
- Size:
- 779 Bytes
- Xet hash:
- 95f883341322494278a18e1308b8b8e227e87bd254b24f3661e5894f58019391
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.