JSPM

@xen-orchestra/async-map

0.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 78
  • Score
    100M100P100Q75737F
  • License ISC

Promise.all + map for all iterables

Package Exports

  • @xen-orchestra/async-map

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@xen-orchestra/async-map) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@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