ifErr method

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

Performs a side-effect if this is Err.

Implementation

@override
@pragma('vm:prefer-inline')
Resolvable<T> ifErr(
  @noFutures void Function(Sync<T> self, Err<T> err) noFutures,
) {
  final v = value;
  if (v is Err<T>) {
    try {
      noFutures(this, v);
      return this;
    } on Err catch (err) {
      return Sync.err(err.transfErr<T>());
    } catch (error, stackTrace) {
      return Sync.err(Err<T>(error, stackTrace: stackTrace));
    }
  }
  return this;
}