错误提示: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;
}
});
}
我猜想原因是没有做协程的包装,故而出错,修复后没再出现问题