flatten2 method

  1. @protected
Resolvable<T> flatten2()

Implementation

@protected
Resolvable<T> flatten2() {
  switch (this) {
    case Sync(value: final outerResult):
      switch (outerResult) {
        case Ok(value: final innerResolvable):
          return innerResolvable;

        case final Err<Resolvable<T>> err:
          return Sync.err(err.transfErr());
      }
    case Async(value: final outerFutureResult):
      return Async(() async {
        final outerResult = await outerFutureResult;
        switch (outerResult) {
          case Ok(value: final innerResolvable):
            return await innerResolvable.unwrap();
          case final Err<Resolvable<T>> err:
            throw err;
        }
      });
  }
}