如何对未来的类型使用折叠方法?
How to use the fold method for a future type?
我有这个方法作为我的存储库:
Future<Either<Exceptions, bool>> userRegister(FormData formData) async {
try {
final response = await _mourdakApi.userRegister(formData);
bool _isSuccesed;
if (response.statusCode == 200)
_isSuccesed = true;
else
_isSuccesed = false;
return Right(_isSuccesed);
} catch (e) {
return Left(
Exceptions(
message: e.toString(),
),
);
}
}
现在我想在这里使用折叠方法:
final failedOrResult = _mourdakRepository.userRegister(event.formData);
return failedOrResult.fold(
(exception) => UserExceptionState(exception.message),
(isSuccesed) => UserRegisterState(isSuccesed));
但是我得到了这个错误:
The method 'fold' isn't defined for the type 'Future'
不知道有没有解决,就是少了await。
另一种方法是使用在 lib dartz
中定义的 Task 方法
final failedOrResult = await _mourdakRepository.userRegister(event.formData);
return failedOrResult.fold(
(exception) => UserExceptionState(exception.message),
(isSuccesed) => UserRegisterState(isSuccesed));
我有这个方法作为我的存储库:
Future<Either<Exceptions, bool>> userRegister(FormData formData) async {
try {
final response = await _mourdakApi.userRegister(formData);
bool _isSuccesed;
if (response.statusCode == 200)
_isSuccesed = true;
else
_isSuccesed = false;
return Right(_isSuccesed);
} catch (e) {
return Left(
Exceptions(
message: e.toString(),
),
);
}
}
现在我想在这里使用折叠方法:
final failedOrResult = _mourdakRepository.userRegister(event.formData);
return failedOrResult.fold(
(exception) => UserExceptionState(exception.message),
(isSuccesed) => UserRegisterState(isSuccesed));
但是我得到了这个错误:
The method 'fold' isn't defined for the type 'Future'
不知道有没有解决,就是少了await。 另一种方法是使用在 lib dartz
中定义的 Task 方法final failedOrResult = await _mourdakRepository.userRegister(event.formData);
return failedOrResult.fold(
(exception) => UserExceptionState(exception.message),
(isSuccesed) => UserRegisterState(isSuccesed));