在flutter中使用fpdart时如何在不折叠的情况下获取成功或错误数据?

问题描述 投票:0回答:1

我正在使用 fpdart 来捕获我的 flutter 应用程序中的错误。我想直接获取错误消息或成功消息而不折叠整个响应。 res 对象有 getRight() 和 getLeft() 方法,但它分别返回

Option<Success Data Type>
Option<Error Data Type>
。如何不折叠直接提取数据?

Future<Either<String, int>> getData() async {
  try {
    int data = await Future.delayed(Duration(seconds: 3), () => 15);
    return right(data);
   } catch (err) {
    return left(err.toString());
  }
 }
android flutter dart functional-programming mobile-application
1个回答
0
投票

我主要为此创建扩展。

extension EitherExt on Either {
  ///! use only after checking the type
  get asLeft => (this as Left).value;
  get asRight => (this as Right).value;
}

你可以使用like

final result = await getData(); 

final  myInt = result.asRight;
© www.soinside.com 2019 - 2024. All rights reserved.