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