我真的不明白如何在 onReject 处理程序中捕获异常(转发它)。我想知道是否有人可以为我指出如何成功做到这一点的正确方向。
我正在发送一些异步请求,当一个请求失败并显示“遇到未捕获的异常 - 类型:GuzzleHttp\Exception\ClientException”时,它永远不会被捕获。
我读过了:
但目前尚不清楚为什么以下不起作用。我的理解是,当在 onReject (RequestException) 中抛出 ClientException 时,它将进一步向下推到下一个 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?
});