race()

/**
 * @throws Throwable
 * @param array<int, Async|Promise|callable> $promises
 * @phpstan-param array<int, Async|Promise|callable> $promises
 */
public static function race(array $promises): Promise;

The Promise::race() static method takes an iterable of promises as input and returns a single Promise. This returned promise settles with the eventual state of the first promise that settles.

Example:

function testPromise1() : Promise { 
    return new Promise(function ($resolve, $reject) {
        $resolve("A");
    });
}

function testPromise2() : Promise {
    return new Promise(function ($resolve, $reject) {
        $resolve("B");
    });
}

Promise::race([
	testPromise1(),
	testPromise2()
])->then(fn($result) => var_dump($promise));

Output:

A

Last updated