我在这里有一个带有两个计时器事件的 reactPHP 循环:
$loop = \React\EventLoop\Factory::create();
$process = new \React\ChildProcess\Process("php wait5seconds.php");
$process->on('exit', function($exitCode, $termSignal) {
echo "Process Finished".PHP_EOL;
});
$loop->addTimer(2, function($timer) {
echo "TWO".PHP_EOL;
});
$loop->addTimer(1, function($timer) use ($process) {
echo "ONE".PHP_EOL;
$process->start($timer->getLoop());
});
$loop->run();
没有子进程,计时器工作正常,我得到了输出:
ONE
TWO
但是当我在第一个计时器中启动一个进程时,第二个计时器被阻塞,直到进程完成。我得到输出:
ONE
Process Finished
TWO
不应该是异步的吗?该过程是 sleep(5) 所以我希望:
ONE
TWO
Process Finished
我错过了什么?