A better sync and async iterator API.
$ npm i betterator
import { Betterator, AsyncBetterator } from 'betterator'
const slothActivities = [`sleeping`, `eating`, `climbing`]
// Or `new Betterator(slothActivities[Symbol.iterator]())`
const iterator = Betterator.fromIterable(slothActivities)
while (iterator.hasNext()) {
console.log(iterator.getNext())
}
//=> sleeping
//=> eating
//=> climbing
const asyncSlothActivities = (async function* () {
yield* slothActivities
})()
// Or `new AsyncBetterator(slothActivities[Symbol.asyncIterator]())`
const asyncIterator = AsyncBetterator.fromAsyncIterable(asyncSlothActivities)
while (await asyncIterator.hasNext()) {
console.log(await asyncIterator.getNext())
}
//=> sleeping
//=> eating
//=> climbing
See the type definitions for more documentation.
Stars are always welcome!
For bugs and feature requests, please create an issue.