Skip to main content

Variable: flatMapConcur()

const flatMapConcur: {<From, To>(fn): (concurIterable) => ConcurIterable<To>; <From, To>(fn, concurIterable): ConcurIterable<To>; <From, To>(fn): (concurIterable) => ConcurIterable<To>; <From, To>(fn, concurIterable): ConcurIterable<To>; }

Defined in: transforms.d.ts:281

Returns an concur iterable containing the values of the concur iterables returned, or resolving from promises returned, from applying fn to each value of concurIterable.

Like Array.prototype.flatMap, but for concur iterables.

Call Signature

<From, To>(fn): (concurIterable) => ConcurIterable<To>

Type Parameters

From

From

To

To extends [] | unknown[]

Parameters

fn

(value) => MaybePromiseLike<ConcurIterable<To> | Iterable<To, any, any> | AsyncIterable<To, any, any>>

Returns

(concurIterable): ConcurIterable<To>

Parameters

concurIterable

ConcurIterable<From>

Returns

ConcurIterable<To>

Call Signature

<From, To>(fn, concurIterable): ConcurIterable<To>

Type Parameters

From

From

To

To extends [] | unknown[]

Parameters

fn

(value) => MaybePromiseLike<ConcurIterable<To> | Iterable<To, any, any> | AsyncIterable<To, any, any>>

concurIterable

ConcurIterable<From>

Returns

ConcurIterable<To>

Call Signature

<From, To>(fn): (concurIterable) => ConcurIterable<To>

Type Parameters

From

From

To

To

Parameters

fn

(value) => MaybePromiseLike<ConcurIterable<To> | Iterable<To, any, any> | AsyncIterable<To, any, any>>

Returns

(concurIterable): ConcurIterable<To>

Parameters

concurIterable

ConcurIterable<From>

Returns

ConcurIterable<To>

Call Signature

<From, To>(fn, concurIterable): ConcurIterable<To>

Type Parameters

From

From

To

To

Parameters

fn

(value) => MaybePromiseLike<ConcurIterable<To> | Iterable<To, any, any> | AsyncIterable<To, any, any>>

concurIterable

ConcurIterable<From>

Returns

ConcurIterable<To>

Example

import { asConcur, flatMapConcur, map, pipe, reduceConcur, toArray } from 'lfi'

const API_URL = `https://api.dictionaryapi.dev/api/v2/entries/en`

console.log(
await pipe(
asConcur([`sloth`, `lazy`, `sleep`]),
flatMapConcur(async word => {
const response = await fetch(`${API_URL}/${word}`)
const [{ meanings }] = await response.json()
return map(meaning => meaning.partOfSpeech, meanings)
}),
reduceConcur(toArray()),
),
)
// NOTE: This order may change between runs
//=> [
//=> 'noun',
//=> 'verb',
//=> 'noun',
//=> 'verb',
//=> 'adjective',
//=> 'verb'
//=> ]
Playground

Since

v0.0.1