Skip to main content

sdk.jobs.runjobssequentially

Home > @matterway/sdk > Jobs > runJobsSequentially

Jobs.runJobsSequentially() function

A Job is a function that returns a promise. This helper can be used to run multiple jobs sequentially, passing the result of a job to the next one as input, returning a promise that resolves as an array of all the results.

Signature:

export declare function runJobsSequentially<T extends JobList>(ctx: Context, jobs: T, options?: RunJobsSequentiallyOptions): JobResults<T>;

Parameters

ParameterTypeDescription
ctxContextThe context to run the jobs in.
jobsTAn array of jobs to run.
optionsRunJobsSequentiallyOptions(Optional) Options for running the jobs.

Returns:

JobResults<T>

An array of results, in the same order as the jobs array.

Remarks

  • To run all jobs without rejecting the promise if one of them fails, use try/catch inside the job handler.

Example

async function step(ctx: Context) {
const jobs = [
{title: 'job 1', handler: () => Promise.resolve(1)},
{title: 'job 2', handler: (ctx:Context, result:number) => Promise.resolve(result * 2)},
{title: 'job 3', handler: (ctx:Context, result:number) => Promise.resolve(result * 3)},
];
const options = {onUpdate: console.log};
const results = await runJobsSequentially(ctx, jobs, options);
return results;
}
const ctx = {};
step(ctx).then(results => console.log(results));