ifOk method

  1. @override
Resolvable<T> ifOk(
  1. @noFutures void noFutures(
    1. Async<T> self,
    2. Ok<T> ok
    )
)
override

Performs a side-effect if this is Ok.

Implementation

@override
Resolvable<T> ifOk(
  @noFutures void Function(Async<T> self, Ok<T> ok) noFutures,
) {
  return Async(() async {
    final awaitedValue = await value;
    return switch (awaitedValue) {
      Ok<T> ok => Resolvable(() {
        noFutures(this, ok);
        return awaitedValue;
      }).flatten(),
      Err() => this,
    };
  }).flatten();
}