为 FutureBuilder 生成 snapshot.error 的正确方法是什么?我有一个单例来处理 http 请求,有一个方法:
try {
var response = await http.get(url);
// Success
if (response.statusCode == 200) {
[...]
}
// Failure
else {
return Future.error("Error");
}
} catch (e) {
return Future.error("Error");
}
另一方面,我有一个带有 FutureBuilder 的小部件:
FutureBuilder(
future: new Future(() => {Singleton().request()}),
builder: (context, snapshot) {
if (snapshot.hasData) {
// snapshot has ALWAYS data even if I return error
} else if(snapshot.hasError) {
// never reach this statement
}
});
我究竟做错了什么?您能否指出我处理错误的正确方向?我想避免回调 catchError()。提前致谢。