output-sdk
    Preparing search index...

    Function executeInParallel

    • Execute jobs in parallel with optional concurrency limit.

      Returns all job results (successes and failures) sorted by original job index. Each result contains ok (boolean), index (original position), and either result (on success) or error (on failure).

      Jobs must be wrapped in arrow functions—do not pass promises directly.

      Type Parameters

      • T

      Parameters

      • params: {
            concurrency?: number;
            jobs: (() => T | Promise<T>)[];
            onJobCompleted?: (result: ParallelJobResult<T>) => void;
        }

        Parameters object

        • Optionalconcurrency?: number

          Max concurrent jobs (default: Infinity)

        • jobs: (() => T | Promise<T>)[]

          Array of arrow functions returning step/activity calls (not promises directly)

        • OptionalonJobCompleted?: (result: ParallelJobResult<T>) => void

          Optional callback invoked as each job completes (in completion order)

      Returns Promise<ParallelJobResult<T>[]>

      Array of results sorted by original job index

      const results = await executeInParallel( {
      jobs: [
      () => myStep( data1 ),
      () => myStep( data2 ),
      () => myStep( data3 )
      ],
      concurrency: 2
      } );

      // Handle the discriminated union (result only exists when ok is true)
      const successfulResults = results.filter( r => r.ok ).map( r => r.result );

      // Or handle each result individually
      for ( const r of results ) {
      if ( r.ok ) {
      console.log( `Job ${r.index} succeeded:`, r.result );
      } else {
      console.log( `Job ${r.index} failed:`, r.error );
      }
      }