receiveGuardedBroadcastStream method

Stream receiveGuardedBroadcastStream({
  1. dynamic arguments,
  2. required dynamic onError(
    1. Object error,
    2. StackTrace stackTrace
    ),
})

Similar to receiveBroadcastStream, but with enforced error handling.

Implementation

Stream<dynamic> receiveGuardedBroadcastStream({
  dynamic arguments,
  required dynamic Function(Object error, StackTrace stackTrace) onError,
}) {
  final incomingStackTrace = StackTrace.current;

  return receiveBroadcastStream(arguments).handleError((Object error) {
    // TODO(rrousselGit): use package:stack_trace to merge the error's StackTrace with "incomingStackTrace"
    // This TODO assumes that EventChannel is updated to actually pass a StackTrace
    // (as it currently only sends StackTrace.empty)
    return onError(error, incomingStackTrace);
  });
}