Skip to main content


Structured concurrency and effects for JavaScript
Go to Latest
function race
import { race } from "";

Race the given operations against each other and return the value of whichever operation returns first. This has the same purpose as Promise.race.

If an operation become errored first, then race will fail with this error. After the first operation wins the race, all other operations will become halted and therefore cannot throw any further errors.


Example 1

import { main, race, fetch } from 'effection';

await main(function*() {
 let fastest = yield* race([fetch(''), fetch('')]);
 // ...


operations: Operation<T>[]

a list of operations to race against each other


the value of the fastest operation