From fbeb01767075a6e8022822bf8791d82096bf7067 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 13 Nov 2024 14:55:14 +0000 Subject: [PATCH] Promise: allow zero promises not supporting this has caused problems every time this function has been used in reality so far (#6092 and #6333). --- src/promise/Promise.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/promise/Promise.php b/src/promise/Promise.php index 0def7e6052..27a5e50aab 100644 --- a/src/promise/Promise.php +++ b/src/promise/Promise.php @@ -69,16 +69,17 @@ final class Promise{ * * @phpstan-template TPromiseValue * @phpstan-template TKey of array-key - * @phpstan-param non-empty-array> $promises + * @phpstan-param array> $promises * * @phpstan-return Promise> */ public static function all(array $promises) : Promise{ - if(count($promises) === 0){ - throw new \InvalidArgumentException("At least one promise must be provided"); - } /** @phpstan-var PromiseResolver> $resolver */ $resolver = new PromiseResolver(); + if(count($promises) === 0){ + $resolver->resolve([]); + return $resolver->getPromise(); + } $values = []; $toResolve = count($promises); $continue = true;