UNPKG

axax

Version:

A library of async iterator extensions for JavaScript including ```map```, ```reduce```, ```filter```, ```flatMap```, ```pipe``` and [more](https://github.com/jamiemccrindle/axax/blob/master/docs/API.md#functions).

34 lines (33 loc) 1.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const concurrentMap_1 = require("../concurrentMap"); const of_1 = require("../of"); const range_1 = require("../range"); const toArray_1 = require("../toArray"); const wait_1 = require("../wait"); test("concurrentMap", async () => { const result = await toArray_1.toArray(concurrentMap_1.concurrentMap(async (value) => value * 2, 2)(of_1.of(1, 2, 3))); result.sort(); expect(result).toEqual([2, 4, 6]); }); test("concurrentMap async", async () => { let maxInParallel = 0; let currentInParallel = 0; const increment = () => { currentInParallel += 1; if (currentInParallel > maxInParallel) { maxInParallel = currentInParallel; } }; const decrement = () => { currentInParallel -= 1; }; for await (const item of concurrentMap_1.concurrentMap(async () => { increment(); await wait_1.wait(100); decrement(); }, 4)(range_1.range(1, 10))) { // noop } expect(maxInParallel).toEqual(4); });