tiloop
Higher order function creates a function contain a iterator that yield last value coincident with done.
Installation
yarn add tiloop
Usage
const fn = // { done: false, value: [0, 1, 2, 3] } // { done: false, value: [4, 5, 6, 7] }... // { done: true, value: [9996, 9997, 9998, 9999] }
tiloop(config)
length: number
Used for determine virtual-array length. (required)
maxIncrement: number
Used for determine increment in every yield
. (required)
yielded: (array) => value
Used for yield
. (required)
promisify: boolean
Whether Promise.resolve()
to value
. [default: false
]
random: boolean
Whether increment indexes by random. [default: false
]
modules
const indexes = length maxIncrement const iterator = const afn =
create(indexes, yielded)
create iterator.
IndexesZero({ length, maxIncrement })
indexes increments 0 to length - 1.
IndexesRandom({ length, maxIncrement })
indexes increments random.
i2f(iterator[, promisify])
iterator to function.
Note
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 = // done with last valueconst array = ... // not includes last value
License
MIT (http://opensource.org/licenses/MIT)