UNPKG

typed-utilities

Version:
27 lines (24 loc) 695 B
"use strict"; var _ = require(".."); describe(`AsyncSemaphore`, () => { test(`use AsyncSemaphore`, async () => { const semaphore = new _.AsyncSemaphore(10); let max = 0; let success = 0; await (0, _.mapAsyncConcurrent)((0, _.range)(100), async k => { await semaphore.use(async () => { max = Math.max(max, semaphore.current); await (0, _.sleep)(10); if (k % 2 === 0) { throw new Error(); } else { success++; } }); }).catch(() => void 0); expect(semaphore.current).toEqual(0); expect(max).toEqual(10); expect(success).toEqual(50); }); }); //# sourceMappingURL=AsyncSemaphore.test.js.map