Я не очень понимаю, как поймать исключение (переслать его) в обработчике onReject. Мне было интересно, может ли кто-нибудь указать мне правильное направление, как это сделать.
Я отправляю несколько асинхронных запросов, и когда один из них завершается с ошибкой «Обнаружено неперехваченное исключение — тип: GuzzleHttp\Exception\ClientException», он никогда не перехватывается.
Я прочитал:
Но неясно, почему следующее не работает. Насколько я понимаю, когда ClientException вызывается внутри onReject (RequestException), оно затем толкает его дальше к следующему onReject (ClientException) и правильно перехватывается.
Любая помощь будет оценена по достоинству.
$client = new GuzzleHttp\Client();
$promise = $client->requestAsync('POST', SOME_URL, [
... SOME_PARAMS ...
]);
$promise->then(
function (ResponseInterface $res) {
//ok
},
function (RequestException $e) {
//inside here throws a ClientException
}
)->then(null, function (ClientException $e) {
//Why does it not get caught/forwarded to this error handler?
});