Guzzle异步承诺的意义何在?
对于Guzzle,承诺是否提供了任何真正的效用?看来你必须调用wait()。以下代码(来自文档)本身似乎不执行任何操作:
$promise = $client->requestAsync('GET', 'http://httpbin.org/get');
$promise->then(
function (ResponseInterface $res) {
echo $res->getStatusCode() . "\n";
},
function (RequestException $e) {
echo $e->getMessage() . "\n";
echo $e->getRequest()->getMethod();
}
);
如果你必须打电话给$promise->wait()来提出请求,那么承诺有什么意义呢?这与以下方面有何不同:
$request = new Request('GET', 'http://httpbin.org/get');
$response = $client->send($request);
if ($response
据我所知,唯一的好处是它是定义请求成功和失败回调的便捷方法。甚至关于发出多个请求的文档部分也有下面的代码,它似乎阻止和执行所有请求...也许在“同时”。这就是我应该期待的吗?
// Wait on all of the requests to complete.
$results = Promise\unwrap($promises);