【发布时间】:2021-10-06 05:12:52
【问题描述】:
我正在尝试使用 guzzle promises 来进行一些 http 调用,为了说明我所拥有的,我做了一个简单的示例,其中一个虚假的 http 请求需要 5 秒:
$then = microtime(true);
$promise = new Promise(
function() use (&$promise) {
//Make a request to an http server
$httpResponse = 200;
sleep(5);
$promise->resolve($httpResponse);
});
$promise2 = new Promise(
function() use (&$promise2) {
//Make a request to an http server
$httpResponse = 200;
sleep(5);
$promise2->resolve($httpResponse);
});
echo 'PROMISE_1 ' . $promise->wait();
echo 'PROMISE_2 ' . $promise2->wait();
echo 'Took: ' . (microtime(true) - $then);
现在我想做的是启动它们,然后让两个 echo 等待响应。实际发生的是 promise 1 触发,等待 5 秒,然后触发 promise 2 并再等待 5 秒。
据我了解,我可能应该使用 promise 的 ->resolve(); 函数来启动它,但我不知道如何通过 resolve 一个函数来进行 http 调用
【问题讨论】:
标签: php asynchronous promise guzzle