幼虫アプリケーションで HHVM の非同期関数を使用しようとしています。関数に async キーワードを追加しましたが、await 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