private function privateCall($callback, $next, $x)
{
try {
$r = call_user_func($callback, $x);
$next->resolve($r);
} catch (UncatchableException $e) {
throw $e->getPrevious();
} catch (Exception $e) {
$next->reject($e);
} catch (Throwable $e) {
$next->reject($e);
}
}