UNPKG

kibana-123

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

51 lines (40 loc) 852 B
import _ from 'lodash'; function WorkQueue() { let q = this; let work = []; let fullDefers = []; q.limit = 0; Object.defineProperty(q, 'length', { get: function () { return work.length; } }); let resolve = function (defers) { return defers.splice(0).map(function (defer) { return defer.resolve(); }); }; let checkIfFull = function () { if (work.length >= q.limit && fullDefers.length) { resolve(fullDefers); } }; q.resolveWhenFull = function (defer) { fullDefers.push(defer); checkIfFull(); }; q.doWork = function () { let resps = resolve(work); checkIfFull(); return resps; }; q.empty = function () { work.splice(0); checkIfFull(); }; q.push = function (defer) { work.push(defer); checkIfFull(); }; } export default WorkQueue;