waitForResponse method
Implementation
Future<dynamic> waitForResponse(dynamic event, {Duration? timeout}) {
final completer = Completer<dynamic>();
Timer? timer;
void listener(dynamic data) {
timer?.cancel();
off(event, listener);
if (!completer.isCompleted) {
completer.complete(data);
}
}
on(event, listener);
if (timeout != null) {
timer = Timer(timeout, () {
off(event, listener);
if (!completer.isCompleted) {
completer.completeError(TimeoutException('Timed out waiting for $event', timeout));
}
});
}
return completer.future;
}