0
votes

Comment pouvons-nous obtenir de la valeur d'une future méthode de flutter?

J'ai cette fonction qui renvoie la valeur "SharedPreference" qui y est stockée.

I/flutter (19683): Login status : Instance of 'Future<bool>'

La fonction ci-dessus est dans la classe nommée "Constants.dart". Quand je fais le test d'extraction de la valeur de la fonction "getLoginStatus ()" par simple impression dans une classe différente.

 print("Login status : " + Constants().getLoginStatus().toString());

Cela me donne ci-dessous comme sortie. Pourquoi "Instance of 'Future'"? Pourquoi pas un simple vrai ou faux?

  Future<bool> getLoginStatus() async {
    final prefs = await SharedPreferences.getInstance();
    final loggedInStatus = prefs.getBool("loggedInStatus");

    if (loggedInStatus == null) {
      return false;
    }
    return loggedInStatus;
  }


1 commentaires

Je peux vous recommander de lire sur la programmation asynchrone dans Dart: dart.dev/codelabs/async-await


3 Réponses :


1
votes

vous pouvez obtenir des données en utilisant await.

var data  = await Constants().getLoginStatus();
print(data);


0 commentaires

1
votes
getLoginStatus().then((val){ print("Login status : $val"});
The then function should be used with Futures to access the value returned from a future.

1 commentaires

Cela a été utile. Merci



2
votes

Étant donné que votre getloginstatus () est asynchrone et il renvoie une valeur de bool à l'avenir. Donc, pour obtenir la valeur que vous devez attendre pour le processus de le renvoyer.

Donc, le code correct pour récupérer la valeur serait le suivant: xxx


1 commentaires

Cela a été utile. Merci