@jiminp/tooltool
    Preparing search index...

    Function runGenerator

    • Run a generator (sync or async) to completion, optionally observing each yielded value.

      • For a synchronous Generator, this returns R.
      • For an AsyncGenerator, this returns Promise<R>.

      The optional onYeet callback is invoked for each yielded value.

      Type Parameters

      • Y

        The type of yielded values.

      • R

        The type of the return value.

      Parameters

      • gen: Generator<Y, R>

        The generator to run to completion.

      • OptionalonYeet: (y: Y) => void

        Optional observer called for each truthy yielded value.

      Returns R

      The generator's return value R or a Promise<R> for async generators.

      // Synchronous generator
      function* numbers() {
      yield 1; yield 2; return 3;
      }
      const result = runGenerator(numbers(), (v) => console.log("got", v));
      // logs: "got 1", "got 2"
      // result === 3
      // Asynchronous generator
      async function* asyncNumbers() {
      yield 1; await Promise.resolve(); yield 2; return 3;
      }
      const result = await runGenerator(asyncNumbers(), (v) => console.log("got", v));
      // logs: "got 1", "got 2"
      // result === 3
    • Run a generator (sync or async) to completion, optionally observing each yielded value.

      • For a synchronous Generator, this returns R.
      • For an AsyncGenerator, this returns Promise<R>.

      The optional onYeet callback is invoked for each yielded value.

      Type Parameters

      • Y

        The type of yielded values.

      • R

        The type of the return value.

      Parameters

      • gen: AsyncGenerator<Y, R>

        The generator to run to completion.

      • OptionalonYeet: (y: Y) => void

        Optional observer called for each truthy yielded value.

      Returns Promise<R>

      The generator's return value R or a Promise<R> for async generators.

      // Synchronous generator
      function* numbers() {
      yield 1; yield 2; return 3;
      }
      const result = runGenerator(numbers(), (v) => console.log("got", v));
      // logs: "got 1", "got 2"
      // result === 3
      // Asynchronous generator
      async function* asyncNumbers() {
      yield 1; await Promise.resolve(); yield 2; return 3;
      }
      const result = await runGenerator(asyncNumbers(), (v) => console.log("got", v));
      // logs: "got 1", "got 2"
      // result === 3