錯誤提示:Uncaught Swoole\Error: API must be called in the coroutine in /mnt/d/Zdtvr/Projects/BD/ZDT019/WebApp/trunk/src/vendor/easyswoole/task/src/UnixClient.php:55
修復文件:src\vendor\easyswoole\task\src\Task.php
方法:
private function sendAndRecv(Package $package, int $id, float $timeout = null) {
go(function() use ($package, $id, $timeout) {
if ($timeout === null) {
$timeout = $this->config->getTimeout();
}
$client = new UnixClient($this->idToUnixName($id));
$client->send(Protocol::pack(\Opis\Closure\serialize($package)));
$ret = $client->recv($timeout);
$client->close();
if (!empty($ret)) {
return \Opis\Closure\unserialize(Protocol::unpack($ret));
} else {
return null;
}
});
}
我猜想原因是沒有做協程的包裝,故而出錯,修復後沒再出現問題