Skip to main content

Variable: generateAsync()

const generateAsync: {<Value>(fn): (seed) => AsyncIterable<Value>; <Value>(fn, seed): AsyncIterable<Value>; }

Defined in: generators.d.ts:259

Returns an infinite async iterable that yields seed for its first value and then yields the awaited result of applying fn to its previously yielded value for every subsequent value.

Call Signature

<Value>(fn): (seed) => AsyncIterable<Value>

Type Parameters

Value

Value

Parameters

fn

(previousValue) => MaybePromiseLike<Value>

Returns

(seed): AsyncIterable<Value>

Parameters

seed

Value

Returns

AsyncIterable<Value>

Call Signature

<Value>(fn, seed): AsyncIterable<Value>

Type Parameters

Value

Value

Parameters

fn

(previousValue) => MaybePromiseLike<Value>

seed

Value

Returns

AsyncIterable<Value>

Example

import { generateAsync, pipe, reduceAsync, takeAsync, toArray } from 'lfi'

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

console.log(
await pipe(
`sleep`,
generateAsync(async previousWord => {
const response = await fetch(`${API_URL}/${previousWord}`)
const [{ meanings }] = await response.json()
return meanings[0].partOfSpeech
}),
takeAsync(4),
reduceAsync(toArray()),
),
)
//=> [ 'sleep', 'verb', 'noun', 'noun' ]
Playground

Since

v0.0.1