registerRequest<T> static method

Future<T> registerRequest<T>(
  1. RpcRequest request
)

register request and wait for its response

if response is error throws RpcError

else returns result of type T if no result returns Null

Implementation

static Future<T> registerRequest<T>(RpcRequest request) async {
  final completer = Completer<T>();
  final killer = responseEvent.addListener((response) {
    if (response.id == request.id) {
      if (response.hasError) {
        completer.completeError(response.error!);
      } else {
        completer.complete(response.result);
      }
    }
  });
  return completer.future.whenComplete(killer);
}