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; }
3 Réponses :
vous pouvez obtenir des données en utilisant await.
var data = await Constants().getLoginStatus(); print(data);
getLoginStatus().then((val){ print("Login status : $val"}); The then function should be used with Futures to access the value returned from a future.
Cela a été utile. Merci
É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: p>
Cela a été utile. Merci
Je peux vous recommander de lire sur la programmation asynchrone dans Dart: dart.dev/codelabs/async-await