From 02bcf47eaf723520fa3905d0e6f1852168fe646c Mon Sep 17 00:00:00 2001 From: yuanzhihai <396751927@qq.com> Date: Tue, 14 Nov 2023 13:49:02 +0800 Subject: [PATCH] update --- README.md | 16 +++++++++++++--- src/Request.php | 4 +--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index df94998..17354cd 100644 --- a/README.md +++ b/README.md @@ -264,22 +264,26 @@ $response = Http::withResponseMiddleware( use yzh52521\EasyHttp\Response; use yzh52521\EasyHttp\RequestException; -Http::getAsync('http://easyhttp.yzh52521.cn/api/sleep3.json', ['token' => TOKEN], function (Response $response) { +$promise = Http::getAsync('http://easyhttp.yzh52521.cn/api/sleep3.json', ['token' => TOKEN], function (Response $response) { echo '异步请求成功,响应内容:' . $response->body() . PHP_EOL; }, function (RequestException $e) { echo '异步请求异常,错误码:' . $e->getCode() . ',错误信息:' . $e->getMessage() . PHP_EOL; }); + +$promise->wait(); echo json_encode(['code' => 200, 'msg' => '请求成功'], JSON_UNESCAPED_UNICODE) . PHP_EOL; //输出 {"code":200,"msg":"请求成功"} 异步请求成功,响应内容:{"code":200,"msg":"success","second":3} -Http::getAsync('http1://easyhttp.yzh52521.cn/api/sleep3.json', function (Response $response) { +$promise = Http::getAsync('http1://easyhttp.yzh52521.cn/api/sleep3.json', function (Response $response) { echo '异步请求成功,响应内容:' . $response->body() . PHP_EOL; }, function (RequestException $e) { echo '异步请求异常,错误信息:' . $e->getMessage() . PHP_EOL; }); + +$promise->wait(); echo json_encode(['code' => 200, 'msg' => '请求成功'], JSON_UNESCAPED_UNICODE) . PHP_EOL; //输出 @@ -297,6 +301,9 @@ Http::deleteAsync(...); Http::headAsync(...); Http::optionsAsync(...); + +使用 等待异步回调处理完成 +Http::wait(); ``` #### 异步并发请求 @@ -311,12 +318,15 @@ $promises = [ Http::postAsync('http://easyhttp.yzh52521.cn/api/sleep2.json', ['name' => 'yzh52521']), ]; -Http::concurrency(10)->multiAsync($promises, function (Response $response, $index) { +$pool=Http::concurrency(10)->multiAsync($promises, function (Response $response, $index) { echo "发起第 $index 个异步请求,请求时长:" . $response->json()->second . '秒' . PHP_EOL; }, function (RequestException $e, $index) { echo "发起第 $index 个请求失败,失败原因:" . $e->getMessage() . PHP_EOL; }); +$promise = $pool->promise(); +$promise->wait(); + //输出 发起第 1 个请求失败,失败原因:cURL error 1: Protocol "http1" not supported or disabled in libcurl (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) 发起第 2 个异步请求,请求时长:2 秒 diff --git a/src/Request.php b/src/Request.php index ab913c6..a84df3d 100644 --- a/src/Request.php +++ b/src/Request.php @@ -96,9 +96,7 @@ public function __construct() */ public function __destruct() { - if (!empty($this->promises)) { - //\GuzzleHttp\Promise\Utils($this->promises)->wait(); - } + } /**