如何在 PHP 中使用 Guzzle 实现异步调用
How Do I Implement an Async Call with Guzzle in PHP
下面的代码没有按预期工作:我认为它会像 Javascript 那样释放浏览器。仔细阅读后,我知道这是因为 PHP 是单线程的。但是,包含异步功能是有目的的,那么它的用途是什么?
$client = new Client();
$response = $client->requestAsync('http://myurl');
// there is a huge wait period here with browser unresponsive
$response->then(function (Response $response) {
echo $response->getBody();
},
function (RequestException $e) {
echo $e->getMessage();
});
PHP作为服务端语言,只要不给浏览器返回响应,浏览器就会被冻结。您使用 Guzzle 发出异步请求这一事实允许您执行其他等待请求响应的操作,但只能在后端进行。如果您正在寻找不冻结浏览器的异步请求,您可以尝试直接从浏览器中的 javascript 触发它。
下面的代码没有按预期工作:我认为它会像 Javascript 那样释放浏览器。仔细阅读后,我知道这是因为 PHP 是单线程的。但是,包含异步功能是有目的的,那么它的用途是什么?
$client = new Client();
$response = $client->requestAsync('http://myurl');
// there is a huge wait period here with browser unresponsive
$response->then(function (Response $response) {
echo $response->getBody();
},
function (RequestException $e) {
echo $e->getMessage();
});
PHP作为服务端语言,只要不给浏览器返回响应,浏览器就会被冻结。您使用 Guzzle 发出异步请求这一事实允许您执行其他等待请求响应的操作,但只能在后端进行。如果您正在寻找不冻结浏览器的异步请求,您可以尝试直接从浏览器中的 javascript 触发它。