Variable: uniqueByConcur()
const
uniqueByConcur: {<Value
>(fn
): (concurIterable
) =>ConcurIterable
<Value
>; <Value
>(fn
,concurIterable
):ConcurIterable
<Value
>; }
Defined in: filters.d.ts:514
Returns a concur iterable containing the values of concurIterable
, except
values for which fn
returns a value awaitable to the same value are
deduplicated.
When values are deduplicated, the value earlier in iteration order wins.
Call Signature
<
Value
>(fn
): (concurIterable
) =>ConcurIterable
<Value
>
Type Parameters
Value
Value
Parameters
fn
(value
) => unknown
Returns
(
concurIterable
):ConcurIterable
<Value
>
Parameters
concurIterable
ConcurIterable
<Value
>
Returns
ConcurIterable
<Value
>
Call Signature
<
Value
>(fn
,concurIterable
):ConcurIterable
<Value
>
Type Parameters
Value
Value
Parameters
fn
(value
) => unknown
concurIterable
ConcurIterable
<Value
>
Returns
ConcurIterable
<Value
>
Example
import { asConcur, pipe, reduceConcur, toArray, uniqueByConcur } from 'lfi'
const API_URL = `https://api.dictionaryapi.dev/api/v2/entries/en`
console.log(
await pipe(
asConcur([`sloth`, `lazy`, `sleep`]),
uniqueByConcur(async word => {
const response = await fetch(`${API_URL}/${word}`)
const [{ meanings }] = await response.json()
return meanings[0].partOfSpeech
}),
reduceConcur(toArray()),
),
)
// NOTE: These words may change between runs
//=> [ 'sloth', 'sleep' ]
Since
v0.0.2