小编Ric*_*ich的帖子

异步使用Guzzle Promise

我试图使用食人鱼的承诺来进行一些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);
Run Code Online (Sandbox Code Playgroud)

现在,我想做的是同时启动它们,然后使两个echo都在等待响应。实际发生的情况是承诺1触发,等待5秒钟,然后触发承诺2,再等待5秒钟。

根据我的理解,我也许应该使用->resolve();一个promise函数来启动它,但是我不知道如何通过resolve函数来进行http调用。

php asynchronous promise guzzle

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

asynchronous ×1

guzzle ×1

php ×1

promise ×1