Parameters object
Optionalconcurrency?: numberMax concurrent jobs (default: Infinity)
Array of arrow functions returning step/activity calls (not promises directly)
OptionalonJobCompleted?: (result: ParallelJobResult<T>) => voidOptional callback invoked as each job completes (in completion order)
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 );
}
}
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 eitherresult(on success) orerror(on failure).Jobs must be wrapped in arrow functions—do not pass promises directly.