handleResponse method

void handleResponse(
  1. dynamic message, {
  2. Object errorWrapper(
    1. String
    )?,
})

Dispatches an incoming isolate message to the matching pending completer.

Implementation

void handleResponse(
  dynamic message, {
  Object Function(String)? errorWrapper,
}) {
  if (message is! Map) return;

  final int? id = message['id'] as int?;
  if (id == null) return;

  final Completer<dynamic>? completer = _pending.remove(id);
  if (completer == null) return;

  if (message['error'] != null) {
    final errorMsg = message['error'] as String;
    final error = errorWrapper != null
        ? errorWrapper(errorMsg)
        : StateError(errorMsg);
    completer.completeError(error);
  } else {
    completer.complete(message['result']);
  }
}