在php中返回后如何继续执行异步操作?

How to continue performing asynchronous actions after return in php?

提问人:misksa 提问时间:8/22/2023 更新时间:8/22/2023 访问量:45

问:

我只是一个初学者,请告诉我是否可以从 php 函数返回结果,但同时使用 amphp 库让异步操作继续在其中工作?

例:


function run () {

    $func1 = function () {
        //the main action from which you need to get an answer
        $result = "Result";
        
        return $result;
    };
    
    
    $future1 = Amp\async(function () {
        
        Amp\delay(3);
        //not the main action
        echo 'DB, or any Request';
        
    });
    
    $future1->await();
    
    return $func1();

};

run();

假设 “run” 函数接受一个请求,func1 表示需要执行的操作,并基于它们向客户端返回响应,future1 是我们不需要等待向客户端返回响应的操作。

那么,这是主要问题,如何实现这种行为?任何提示、链接、方向、解释 😊 🙏

PHP 异步 响应 非阻塞 AMPHP

评论

2赞 KIKO Software 8/22/2023
可以肯定的是,您实际上是指您是AMPHP的初学者,而不是PHP的初学者?如果后者是真的,则不应使用 AMPHP。
0赞 misksa 8/22/2023
为什么不呢?我不会说我是php的专家,但我知道并理解一些事情。而是我的意思是在 amphp
1赞 KIKO Software 8/22/2023
为什么?在 Javascript 等语言中,异步运行进程是非常正常的。那里的一切都是事件驱动的。PHP显然不是那样工作的。只有在特殊情况下,您才需要在 PHP 中异步运行进程。至于你的问题:如果你在一个函数中等待一个进程结束,那么该函数只会在该进程完成后返回。

答: 暂无答案