runBackendMethod<TVal extends Object, TResponse extends Object> method
Future<TResponse>
runBackendMethod<TVal extends Object, TResponse extends Object>(
- TEvent eventId, [
- TVal? value
Method for sending event with any data to backend
Implementation
@protected
Future<TResponse> runBackendMethod<TVal extends Object, TResponse extends Object>(TEvent eventId, [TVal? value]) async {
assert(_isInitialized, 'You must call "initBackend" method before send data');
final Completer<TResponse> completer = Completer();
final String code = Utils.generateCode(eventId);
_syncResults[code] = completer;
final _Message<TEvent, TVal?> message = _Message(eventId, value: value, code: code);
if (IsolatorConfig._instance.logEvents) {
print('${_prefixTo(eventId)} Run backend\'s method in sync mode in frontend ${_withValue(value)}');
}
_toBackend.send(message);
final TResponse result = await completer.future;
if (IsolatorConfig._instance.logEvents) {
print('${_prefixFrom(eventId)} Got a response from backend\'s method in sync mode in frontend ${_withValue(result)}');
}
return result;
}