|
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