Future completed by the first value sent to port. Null is only possible with null timeoutValue and
Future<R?> get result => _completer.future;