【发布时间】:2020-10-13 18:34:23
【问题描述】:
Soo,标题可能有点令人困惑,但现在让我澄清一下。
我有一个名为 UserController 的类,它有一个名为 updateUserData 的方法。它获取一个 Map
我想做的是:向服务器发送补丁请求,等待服务器返回更改的用户对象,将其写入某个局部变量,然后将值或错误返回给调用该方法的人(在我的例子中是一个 GUI 类)。
目前的方法:
Future<User> updateUserData(Map<String, dynamic> changes) async {
return await http.patch(
"url",
headers: {HttpHeaders.authorizationHeader: "token"},
body: changesMap
).then((newUserObject) => {
currentUser = newUserObject;
//return new user object for display
}); //error from server gets forwarded to GUI.
}
遗憾的是,这根本不起作用。似乎 Flutter/dart 不知道在那里返回什么(它给了我一个 return_of_invalid_type_from_closure 错误)。 我希望很清楚我的目标是什么。我想在此方法中使用“then”子句,但仍然返回一个未来,其中包含我从服务器获得的用户或我得到的错误。
我该怎么做?到目前为止,我查阅了很多 Future 教程,但没有一个使用过类似的东西。
【问题讨论】:
标签: flutter asynchronous dart future