function invoke($name, array &$args, stdClass $context)
{
$invokeHandler = $this->invokeHandler;
$self = $this;
return $invokeHandler($name, $args, $context)->then(function ($value) use($self, $name, &$args, $context) {
if ($value instanceof Exception || $value instanceof Throwable) {
throw $value;
}
return $self->afterInvoke($name, $args, $context, $value);
});
}