0.1.4 • Published 6 years ago

@nfd/ptl v0.1.4

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

ptl /ˈpɛdl/

Promise tools.

Install

npm i @nfd/ptl

Use

const ptl = require('@nfd/ptl')

API

limit(…) serial(…) dual(…) try(…) sleep(…) immediate(…) any(…) all(…) race(…)

limit(n, xs)

Resolves to an array of the results of the items of xs, which should be a promise of a synchronous or asynchronous iterator or iterable of promises or values, maintaining a maximum of n unsettled promises before waiting for some to settle. Rejects with the error if any item rejects.

ptl.limit(3, itt.map(['/array', '/of', '/some', '/paths', ...], async p =>
  JSON.parse(await collect(request(`https://${DOMAIN}${p}`)))))

serial(xs)

Resolves to an array of the results of the items of xs, which should be a promise of a synchronous or asynchronous iterator or iterable of promises or values, only taking one unsettled promise at a time. Rejects with the error if any item rejects. Equivalent to limit(1, xs)

dual(promise)

Resolves to the error if promise rejects; rejects with the result if promise resolves.

try(fn)

Resolves to the result of fn(); rejects if fn() throws a synchronous error.

sleep(ms)

Resolves to undefined after ms milliseconds.

immediate()

Resolves after a setImmediate cycle.

any(promises)

Resolves to the result of the first of promises to resolve, or rejects with an array of all errors. The dual of all

all(promises)

Alias for Promise.all, but accepts a promise of an iterable.

race(promises)

Alias for Promise.race, but accepts a promise of an iterable.

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago