使用 Guzzle,promise 是否提供任何真正的效用?看来你必须调用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);