我正在尝试在 larval 应用程序中使用 HHVM 的异步函数。我在函数中添加了 async 关键字,但在等待 SleepWaitHandle 时出现错误。它说这个类是未定义的。文档似乎没有对此进行更改。我错过了什么?
await \SleepWaitHandle::create(\DB::table('submissions')->insert($submissions_for_insert));
我在每晚 3.9 和 3.8 的马厩上发生了这种情况。运行 ubuntu 14.10。
我尝试从http://hhvm.com/blog/7091/async-cooperative-multitasking-for-hack运行一个演示
<?hh
async function hello(): Awaitable<string> {
return "Hello World";
}
async function goodbye(): Awaitable<string> {
return "Goodbye, everybody!";
}
async function run(
array<Awaitable<string>> $handles,
): Awaitable<array<string>> {
await AwaitAllWaitHandle::fromArray($handles);
return array_map($handle ==> $handle->result(), $handles);
}
$results = run(array(hello(), goodbye()))->getWaitHandle()->join();
print_r($results);
// Array
// (
// [0] => Hello World
// [1] => Goodbye, everybody!
// )
但是在命令行上运行它会返回
Catchable fatal error: Hack type error: Invalid argument at /test/asyn.php line 12