如何在 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 触发它。