0

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(
Chad
  • 9
  • 2

1 Answers1

0
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;
  }
Dharman
  • 30,962
  • 25
  • 85
  • 135