public function when(callable $onResolved)
{
try {
$onResolved($this->exception, null);
} catch (\Throwable $exception) {
Loop::defer(static function () use($exception) {
throw $exception;
});
}
}