divide method

Future divide(
  1. String name,
  2. int count, {
  3. dynamic next()?,
  4. dynamic collect(
    1. List inputs
    )?,
})

Implementation

Future<dynamic> divide(
  String name,
  int count, {
  dynamic Function()? next,
  dynamic Function(List<dynamic> inputs)? collect,
}) async {
  if (next == null) {
    var i = 0;
    next = () {
      return i++;
    };
  }

  var futures = <Future>[];
  for (var i = 1; i <= count; i++) {
    dynamic input = next();
    futures.add(getAvailableWorker().callMethod(name, input));
  }

  var outs = await Future.wait<void>(futures);

  return collect != null ? await collect(outs) : outs;
}