|
16 | 16 | use Base64Url\Base64Url; |
17 | 17 | use GuzzleHttp\Client; |
18 | 18 | use GuzzleHttp\Exception\RequestException; |
| 19 | +use GuzzleHttp\Promise\Promise; |
19 | 20 | use GuzzleHttp\Psr7\Request; |
20 | 21 | use Psr\Http\Message\ResponseInterface; |
21 | 22 |
|
@@ -166,22 +167,23 @@ public function flush(?int $batchSize = null) : iterable |
166 | 167 | // for each endpoint server type |
167 | 168 | $requests = $this->prepare($batch); |
168 | 169 |
|
169 | | - foreach ($requests as $request) { |
170 | | - $result = null; |
| 170 | + $promises = []; |
171 | 171 |
|
172 | | - $this->client->sendAsync($request) |
173 | | - ->then(function ($response) use ($request, &$result) { |
| 172 | + foreach ($requests as $request) { |
| 173 | + $promises[] = $this->client->sendAsync($request) |
| 174 | + ->then(function ($response) use ($request) { |
174 | 175 | /** @var ResponseInterface $response * */ |
175 | | - $result = new MessageSentReport($request, $response); |
| 176 | + return new MessageSentReport($request, $response); |
176 | 177 | }) |
177 | | - ->otherwise(function ($reason) use (&$result) { |
| 178 | + ->otherwise(function ($reason) { |
178 | 179 | /** @var RequestException $reason **/ |
179 | | - $result = new MessageSentReport($reason->getRequest(), $reason->getResponse(), false, $reason->getMessage()); |
180 | | - }) |
181 | | - ->wait(false); |
182 | | - |
183 | | - yield $result; |
| 180 | + return new MessageSentReport($reason->getRequest(), $reason->getResponse(), false, $reason->getMessage()); |
| 181 | + }); |
184 | 182 | } |
| 183 | + |
| 184 | + foreach ($promises as $promise) { |
| 185 | + yield $promise->wait(); |
| 186 | + } |
185 | 187 | } |
186 | 188 |
|
187 | 189 | if ($this->reuseVAPIDHeaders) { |
|
0 commit comments