readAllEventsUntil method
Collects all events of type name until eventPredicate event occurs.
Useful for gathering multi-part responses like Status or ShowChannels.
Example:
final channels = await readAllEventsUntil('Status', 'StatusComplete');
Implementation
Future<List<Event>> readAllEventsUntil(String name, String eventPredicate) {
final completer = Completer<List<Event>>();
final res = <Event>[];
final listener =
registerEvent(name).listen((e) => res.add(e), cancelOnError: true);
readEvent(eventPredicate).then((value) {
listener.cancel();
completer.complete(res);
});
return completer.future;
}