public function executeOne(...$args) { if ($this->isEmpty()) { return false; } $cb = $this->shift(); if ($cb) { $cb(...$args); if ($cb instanceof CallbackWrapper) { $cb->cancel(); } } return true; }