我正在使用 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());
}
}
我主要为此创建扩展。
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();
///prefer checking `result.isRight()` on toplevel
final myInt = result.asRight;