Flutter Future Return未来的实例

发布于 2025-02-01 11:19:12 字数 1236 浏览 2 评论 0原文

我正在拨打接收数据的API调用。当我打电话时,我会恢复未来的实例。为什么这仍然返回未来的实例而不是等待数据?

这是我的网络文件

class NetworkHelper {
  NetworkHelper(this.url);

  final String url;

Future getSecureData(String token) async {
    http.Response response = await http.post(
      Uri.parse(url),
      headers: {
        HttpHeaders.authorizationHeader: token,
      },
    );
    var data = response;
    return data;
  }

,这是我的帐户设置文件

class AccountSettings extends StatefulWidget {
  const AccountSettings({Key? key}) : super(key: key);
  static const String id = 'account_settings';

  @override
  State<AccountSettings> createState() => _AccountSettingsState();
}

class _AccountSettingsState extends State<AccountSettings> {
  var userData;

  @override
  void initState() {
    super.initState();

    getUserData();
  }

  Future getUserData() async {
    var token = await SecureStorage.getAccessToken();
    var jwttoken = 'JWT ' + token!;
    NetworkHelper networkHelper =
        NetworkHelper('http://localhost:8000/auth/users/me');
    userData = await networkHelper.getSecureData(jwttoken);
  }

  @override
  Widget build(BuildContext context) {
    print(userData);
    return Scaffold(

I am making an api call to receive data. When I make the call, I get back an instance of future. Why does this still return an instance of future instead of waiting for the data?

Here is my networking file

class NetworkHelper {
  NetworkHelper(this.url);

  final String url;

Future getSecureData(String token) async {
    http.Response response = await http.post(
      Uri.parse(url),
      headers: {
        HttpHeaders.authorizationHeader: token,
      },
    );
    var data = response;
    return data;
  }

Here is my Account Settings file

class AccountSettings extends StatefulWidget {
  const AccountSettings({Key? key}) : super(key: key);
  static const String id = 'account_settings';

  @override
  State<AccountSettings> createState() => _AccountSettingsState();
}

class _AccountSettingsState extends State<AccountSettings> {
  var userData;

  @override
  void initState() {
    super.initState();

    getUserData();
  }

  Future getUserData() async {
    var token = await SecureStorage.getAccessToken();
    var jwttoken = 'JWT ' + token!;
    NetworkHelper networkHelper =
        NetworkHelper('http://localhost:8000/auth/users/me');
    userData = await networkHelper.getSecureData(jwttoken);
  }

  @override
  Widget build(BuildContext context) {
    print(userData);
    return Scaffold(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离笑几人歌 2025-02-08 11:19:12
Future getSecureData(String token) async {
    http.Response response = await http.post(
      Uri.parse(url),
      headers: {
        HttpHeaders.authorizationHeader: token,
      },
    );
    var data = response; // This might be off.
    var data = jsonDecode(response.body) // Try replacing with this.
    return data;
  }
Future getSecureData(String token) async {
    http.Response response = await http.post(
      Uri.parse(url),
      headers: {
        HttpHeaders.authorizationHeader: token,
      },
    );
    var data = response; // This might be off.
    var data = jsonDecode(response.body) // Try replacing with this.
    return data;
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文