@adviser/cement - v0.0.0
    Preparing search index...

    Function processIterator

    • Processes an iterator with a callback function for side effects.

      Similar to consumeIterator but doesn't collect results - just processes each item sequentially. Supports chunked processing to avoid blocking the event loop during long-running iterations. Useful for side effects like logging, writing to files, or updating UI.

      Type Parameters

      • T

        Iterator element type

      • CTX = object

        Context type passed to callback

      Parameters

      • iter: IterableIterator<T, any, any> | AsyncIterableIterator<T, any, any>

        Iterator or async iterator to process

      • cb: (msg: T) => void | Promise<void>

        Callback function applied to each item

      • params: Partial<StepCfg<CTX>> = {}

        Optional configuration (chunkSize, setTimeoutFn, ctx)

      Returns Promise<void>

      Promise that resolves when iteration is complete

      function* logs() {
      yield 'Starting...';
      yield 'Processing...';
      yield 'Complete!';
      }

      await processIterator(logs(), (msg) => console.log(msg));

      // With context and chunked processing
      const ctx = { count: 0 };
      await processIterator(
      largeDataIterator,
      (item, ctx) => {
      ctx.count++;
      processItem(item);
      },
      { ctx, chunkSize: 100 } // Yield every 100 items
      );
      console.log(`Processed ${ctx.count} items`);