public function delay(float $time) : Awaitable { return new Promise(function (callable $resolve) use($time) { $timer = Loop\timer($time, function () use($resolve) { $resolve($this); }); return function () use($timer) { $timer->stop(); }; }); }