@antfu/utils
DEPRECATED, now it's part of @antfu/p
Toolkit for managing multiple promises.
Without
const items = [1, 2, 3, 4, 5]
(await Promise.all(items
.map(async i => {
const v = await multiply(i, 3)
const even = await isEven(v)
return [even, v]
})))
.filter(x => x[0])
.map(x => x[1])
import P from '@antfu/p'
const items = [1, 2, 3, 4, 5]
await P(items)
.map(async i => await multiply(i, 3))
.filter(async i => await isEven(i))
// [6, 12]
import P from '@antfu/p'
const p = P()
// collect promises that are not necessarily needed to be resolved right away
p.add(promiseTask1)
someOtherTasks()
p.add(promiseTask2)
p.add(promiseTask3)
// resolve all collected promises
await p
// => Promise.all([promiseTask1, promiseTask2, promiseTask3])
import P from '@antfu/p'
// limits the number of concurrent tasks
await P(myTasks, { concurrency: 5 })
Sponsors
License
MIT License © 2021 Anthony Fu