Skip to content

True Myth / task / race

Function: race()

Call Signature

race(tasks): Task<never, never>

Given an array of tasks, produce a new Task which will resolve or reject with the resolution or rejection of the first task which settles.

Example

ts
import Task, { race } from 'true-myth/task';

let { task: task1, resolve } = Task.withResolvers();
let task2 = new Task((_resolve) => {});
let task3 = new Task((_resolve) => {});

resolve("Cool!");
let theResult = await race([task1, task2, task3]);
console.log(theResult.toString()); // Ok("Cool!")

Parameters

tasks

[]

The tasks to race against each other.

Returns

Task<never, never>

Call Signature

race<A>(tasks): Task<{ -readonly [P in string | number | symbol]: ResolvesTo<A[P<P>]> }[number], { -readonly [P in string | number | symbol]: RejectsWith<A[P<P>]> }[number]>

Given an array of tasks, produce a new Task which will resolve or reject with the resolution or rejection of the first task which settles.

Example

ts
import Task, { race } from 'true-myth/task';

let { task: task1, resolve } = Task.withResolvers();
let task2 = new Task((_resolve) => {});
let task3 = new Task((_resolve) => {});

resolve("Cool!");
let theResult = await race([task1, task2, task3]);
console.log(theResult.toString()); // Ok("Cool!")

Type Parameters

A

A extends readonly AnyTask[]

The type of the array or tuple of tasks.

Parameters

tasks

A

The tasks to race against each other.

Returns

Task<{ -readonly [P in string | number | symbol]: ResolvesTo<A[P<P>]> }[number], { -readonly [P in string | number | symbol]: RejectsWith<A[P<P>]> }[number]>