ifErr method

  1. @override
Resolvable<T> ifErr(
  1. @noFutures void noFutures(
    1. Async<T> self,
    2. Err<T> err
    )
)
override

Performs a side-effect if this is Err.

Implementation

@override
Resolvable<T> ifErr(
  @noFutures void Function(Async<T> self, Err<T> err) noFutures,
) {
  return Async<T>(() async {
    final awaitedValue = await value;
    if (awaitedValue case Err<T> err) {
      noFutures(this, err);
      throw err;
    }
    return (awaitedValue as Ok<T>).value;
  });
}