Eri*_*oss 1 flutter flutter-dependencies flutter-layout
我试图处理登录时出现的错误,通过http 请求检查用户和密码是否正确,问题是,即使我处理了错误,它仍然进入欢迎屏幕,因为我的检查方法总是以true 因为我错误地处理了信息。我希望用户能够看到错误,但我的代码只显示异常。 https://dart.dev/guides/libraries/futures-error-handling我查看了这里,但对于我的具体情况,我没有找到答案。
prefix0.Error err = prefix0.Error();
Future<bool> check(User user) async {
final userResponse = await ApiClient.signIn(user).catchError((error) {
//TODO: handle errors
err.message = jsonDecode(error.toString())["message"];
throw("some arbitrary error");
});
// TODO: Guardar el token en sharedpreferences y verificar si se logro
return true;
}
Run Code Online (Sandbox Code Playgroud)
我真的只是想向用户展示他的错误是什么,而不是我自己(这意味着 throw 不起作用,因为它只是停止代码,而将其取出只会使 return true始终为 true。
您不应返回最后一行的值。仅当 Future 完成并返回一个值时,才应返回 true,即在 .then() 回调中返回 tru,如下所示:
Future<bool> check(User user) async {
final userResponse = await ApiClient.signIn(user)
.then((value){
// TODO: handle value
return true;
})
.catchError((error) {
//TODO: handle errors
err.message = jsonDecode(error.toString())["message"];
throw("some arbitrary error");
});
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6807 次 |
| 最近记录: |