Я отправляю несколько асинхронных обещаний с тайм-аутом, установленным на 30, мне интересно, как зафиксировать время ожидания каких-либо обещаний, чтобы я мог сообщить об этой ошибке. Пожалуйста, смотрите код ниже. По сути, я хочу использовать любые ответы, которые я могу, до тайм-аута и захватить те, которые делают тайм-аут.
foreach ($apiRequests as $guzzleParameters) {
$request = new Request($guzzleParameters->getType(), $guzzleParameters->getApiEndpoint(), $guzzleParameters->getHeaders(), $guzzleParameters->getBody());
$promises[$guzzleParameters->createKey()] = $this->client->sendAsync($request)->then(
function (ResponseInterface $res) {
return $res;
},
function (RequestException $e) {
switch ($e->getCode()) {
case 400:
// log error
break;
case 401:
// log error
break;
case 403:
// log error
break;
case 404:
// log error
break;
}
return $e->getResponse();
}
);
}
$responses = Promise\Utils::settle($promises)->wait(true);
$guzzleParameters->getHeaders()
- person bhucho   schedule 25.03.2021