Nonconformist Propaganda Machine

    @xen-orchestra/async-map

    0.1.2 • Public • Published

    @xen-orchestra/async-map

    Package Version License PackagePhobia Node compatibility

    Promise.all + map for all iterables

    Install

    Installation of the npm package:

    > npm install --save @xen-orchestra/async-map
    

    Usage

    asyncMap(iterable, iteratee, thisArg = iterable)

    Similar to Promise.all + Array#map for all iterables: calls iteratee for each item in iterable, and returns a promise of an array containing the awaited result of each calls to iteratee.

    It rejects as soon as te first call to iteratee rejects.

    import { asyncMap } from '@xen-orchestra/async-map'
    
    const array = await asyncMap(iterable, iteratee, thisArg)

    It can be used with any iterables (Array, Map, etc.):

    const map = new Map()
    map.set('foo', 42)
    map.set('bar', 3.14)
    
    const array = await asyncMap(map, async function ([key, value]) {
      // TODO: do async computation
      //
      // the map can be accessed via `this`
    })

    Use with plain objects

    Plain objects are not iterable, but you can use Object.keys, Object.values or Object.entries to help:

    const object = {
      foo: 42,
      bar: 3.14,
    }
    
    const array = await asyncMap(
      Object.entries(object),
      async function ([key, value]) {
        // TODO: do async computation
        //
        // the object can be accessed via `this` because it's been passed as third arg
      },
      object
    )

    asyncMapSettled(iterable, iteratee, thisArg = iterable)

    Similar to asyncMap but waits for all promises to settle before rejecting.

    import { asyncMapSettled } from '@xen-orchestra/async-map'
    
    const array = await asyncMapSettled(iterable, iteratee, thisArg)

    Contributions

    Contributions are very welcomed, either on the documentation or on the code.

    You may:

    • report any issue you've encountered;
    • fork and create a pull request.

    License

    ISC © Vates SAS

    Install

    npm i @xen-orchestra/async-map

    DownloadsWeekly Downloads

    5

    Version

    0.1.2

    License

    ISC

    Unpacked Size

    6.36 kB

    Total Files

    4

    Last publish

    Collaborators

    • tgoettelmann
    • florent.beauchamp
    • mathieura
    • julien-f
    • marsaud
    • pdonias
    • olivierlambert
    • rajaa_b
    • benjireis