Function createIterableIterator

  • Takes a generator function and returns an iterable iterator or asynchronous iterable iterator object.

    Example

    const identityGenerator = function* (value) { yield value; };
    const iterableIterator = createIterableIterator(identityGenerator);

    const fooIdentity = iterableIterator("foo");

    for (const value of fooIdentity) {
    console.log(value); // "foo"
    }

    // Same IterableIterator as above, return values again:

    for (const value of fooIdentity) {
    console.log(value); // "foo"
    }

    Type Parameters

    Parameters

    • generatorFunction: GeneratorFunction

      Generator to be used every time [Symbol.iterator] is called.

    Returns GeneratorFunction extends IsomorphicGeneratorFunction<Item>
        ? GeneratorFunction extends Function<never, {
                next(...args) => Promise<IteratorResult<Item, void>>;
                return?(value?) => Promise<IteratorResult<Item, void>>;
                throw?(e?) => Promise<IteratorResult<Item, void>>;
            }>
            ? {
                [asyncIterator]() => AsyncIterableIterator<Item>;
                next(...args) => Promise<IteratorResult<Item, any>>;
                return?(value?) => Promise<IteratorResult<Item, any>>;
                throw?(e?) => Promise<IteratorResult<Item, any>>;
            }
            : {
                [iterator]() => IterableIterator<Item>;
                next(...args) => IteratorResult<Item, any>;
                return?(value?) => IteratorResult<Item, any>;
                throw?(e?) => IteratorResult<Item, any>;
            }
        : never

    Iterable iterator object.