invoke method
Runs execution middleware around a runtime-provided invocation.
VM workers supply their supervised isolate/inline executor here. Portable processing supplies a local invocation. The caller owns timeout enforcement and error disposition.
Implementation
Future<Object?> invoke(
TaskContext context,
Future<Object?> Function() handler,
) async {
Object? result;
Future<void> run(int index) async {
if (index >= middleware.length) {
result = await handler();
return;
}
await middleware[index].onExecute(context, () => run(index + 1));
}
await run(0);
return result;
}