UNPKG

@glue42/bbg-market-data

Version:

A high-level API that wraps existing Glue42 Bloomberg Bridge Market Data interop methods. The API is based on the jBloomberg open source wrapper.

55 lines 1.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSequence = void 0; const tslib_1 = require("tslib"); exports.createSequence = () => { const queue = []; let isExecuting = false; let isRun = false; const run = () => tslib_1.__awaiter(void 0, void 0, void 0, function* () { if (isExecuting) { return; } isExecuting = true; while (queue.length > 0) { const nextItem = queue.shift(); if (typeof nextItem === "undefined") { break; } if (!isRun) { break; } const { action, resolve, reject } = nextItem; try { const result = yield action(); resolve(result); } catch (error) { reject(error); } } isExecuting = false; }); const enqueue = (action) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { return new Promise((resolve, reject) => { queue.push({ action, resolve, reject }); if (isRun) { run(); } }); }); const clear = () => { isExecuting = false; isRun = false; queue.splice(0, queue.length); }; return { run: () => { isRun = true; run(); }, enqueue, clear, }; }; //# sourceMappingURL=seq.js.map