executeStream<S, E extends Object> method
- StreamTask<
S, E> task
Similar to executeNormal, except that this will return a Stream instead of a Future.
Implementation
Stream<S> executeStream<S, E extends Object>(StreamTask<S, E> task) async* {
final portName =
ExecuteStreamPortGenerator.create(task.constMeta.debugName);
final receivePort = broadcastPort(portName);
task.callFfi(receivePort.sendPort.nativePort);
await for (final raw in receivePort) {
try {
yield task.codec.decodeObject(raw);
} on CloseStreamException {
receivePort.close();
break;
}
}
}