AnyEvent::setTimeout
AE::timer のインターフェイスが覚えられないなーと思うので、JS の setTimeout に似たものを書きました。
use AnyEvent::setTimeout;
setTimeout(sub {
warn "1sec!";
}, 1000);とか書けます。ちょっと細工をしていて、ファイルの最後に AnyEvent->condvar->recv とかおまじないを書かなくても、終了時に全てのタイマーの終了を待ちます (node.js 風にしたいけどできないのか的なことを言ってたら id:motemen:detail 先生ができそうなことを言ってくれたのでやってみた感じです)
ただ、このモジュールの管理下にあるタイマーしか終了時に待てないのがいまいち感あります……
とりあえず setTimeout さえあれば JSDeferred をそのまんま移植できるなーと思った感じなんですが、それやって意味があるのか謎なのでやめました。
まぁこういうの書いてるうちに AE::timer のインターフェイスとか覚えちゃうんですけど……