Skip to content

concurrent

Execute a array of function functions that return Promise in parallel, with the limit parameter restricting the number of concurrent executions.

Added in v0.0.1

Usage

ts
import { concurrent } from 'parsnip-kit'

const functions = Array.from(
  { length: 5 },
  (_, i) => () =>
    new Promise<number>((resolve) => {
      setTimeout(() => { resolve(i) }, i * 100)
    })

concurrent(functions, 2).then(res => {
  console.log(res)
  // [{ status: 'fulfilled', value: 0 }, { status: 'fulfilled', value: 1 }, { status: 'fulfilled', value: 2 }, { status: 'fulfilled', value: 3 }, { status: 'fulfilled', value: 4 }]
})

API

Type Parameter

ArgTypeDescription
TThe value type returned by a function that returns a Promise

Arguments

ArgTypeOptionalDefaultDescription
functions(() => Promise<T>)[]falseundefinedArray of functions that return Promise
limitnumberfalseundefinedArray of functions that return Promise

Returns

Type
Promise<PromiseSettledResult<Awaited<T>>[]>