runRace<A, E, R> method

Future<Exit<A, E>> runRace<A, E, R>(
  1. List<Effect<A, E, R>> effects, [
  2. Context<R>? context
])

Runs multiple effects concurrently and returns the first successful result

Implementation

Future<Exit<A, E>> runRace<A, E, R>(
  List<Effect<A, E, R>> effects, [
  Context<R>? context,
]) async {
  if (effects.isEmpty) {
    throw ArgumentError('Cannot race empty list of effects');
  }

  final futures = effects.map((effect) => effect.runToExit(context));
  return await Future.any(futures);
}