diff --git a/src/Illuminate/Http/Client/PendingRequest.php b/src/Illuminate/Http/Client/PendingRequest.php index dcab5cb387..749541dc03 100644 --- a/src/Illuminate/Http/Client/PendingRequest.php +++ b/src/Illuminate/Http/Client/PendingRequest.php @@ -908,6 +908,9 @@ public function pool(callable $callback, ?int $concurrency = null) foreach ($requests as $key => $item) { $promises[$key] = $item instanceof static ? $item->getPromise() : $item; } + array_first($promises)->wait(); + + return[]; (new EachPromise($promises, [ 'fulfilled' => function ($result, $key) use (&$results) { diff --git a/tests/Integration/Http/HttpClientTest.php b/tests/Integration/Http/HttpClientTest.php index 7ff6719b65..8b3706304d 100644 --- a/tests/Integration/Http/HttpClientTest.php +++ b/tests/Integration/Http/HttpClientTest.php @@ -87,4 +87,22 @@ public function testForwardsCallsToPromise() $this->assertEquals('faked response', $myFakedResponse); $this->assertEquals('stub', $r); } + + public function testBreaking() + { + Http::pool(function (Pool $pool) { + $pool->as('first') + ->connectTimeout(99999999) + ->get('http://localhost:4000/test?run=1'); + $pool + ->as('second') + ->connectTimeout(99999999) + ->get('http://localhost:4000/test?run=2'); + $pool + ->as('third') + ->connectTimeout(99999999) + ->get('http://localhost:4000/test?run=3'); + }, 1); + +} }