call method

Resolvable<Option<T>> call(
  1. Object callbackKey,
  2. TParam param, {
  3. bool eagerError = false,
  4. void onError(
    1. Err<Object> err
    )?,
})

Implementation

Resolvable<Option<T>> call(
  Object callbackKey,
  TParam param, {
  bool eagerError = false,
  void Function(Err err)? onError,
}) {
  final callback = _callbacks.getOption(callbackKey);
  if (callback.isNone()) {
    return Sync.unsafe(
      Err('No callback associated with $callbackKey exists!'),
    );
  }
  return _seq.addSafe((prev) {
    if (prev.isErr()) {
      onError?.call(prev.err().unwrap());
      if (eagerError) {
        return Sync.unsafe(prev);
      }
    }
    return callback.unwrap()(callbackKey, param);
  });
}