Higher order function creates a function contain a iterator that yield last value coincident with done.
yarn add tiloop
import tiloop from 'tiloop'
const fn = tiloop({
length: 10000,
maxIncrement: 4,
yielded: (indexes) => indexes
})
fn() // { done: false, value: [0, 1, 2, 3] }
fn() // { done: false, value: [4, 5, 6, 7] }
...
fn() // { done: true, value: [9996, 9997, 9998, 9999] }
Used for determine virtual-array length. (required)
Used for determine increment in every yield
. (required)
Used for yield
. (required)
Whether Promise.resolve()
to value
. [default: false
]
Whether increment indexes by random. [default: false
]
import { create, IndexesZero, i2f } from 'tiloop'
const indexes = new IndexesZero({ length, maxIncrement })
const iterator = create(indexes, (array) => {})
const afn = i2f(iterator, true)
create iterator.
indexes increments 0 to length - 1.
indexes increments random.
iterator to function.
iterator
made by create
has done with last value
. In other words, using result as iterable
(not iterator
) will lost the last value
😔.
const iterator = create(indexes,yielded) // done with last value
const array = [...create(indexes,yielded)] // not includes last value