【问题标题】:How can we get value from future method in flutter?我们如何从 Flutter 中的未来方法中获取价值?
【发布时间】:2020-08-12 17:51:57
【问题描述】:

我有这个函数返回存储在其中的“SharedPreference”值。

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

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

上面的函数在名为“Constants.dart”的类中。当我通过在不同的类中简单打印从“getLoginStatus()”函数中提取值的测试时。

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

它给了我下面的输出。为什么是“‘未来’的实例”?为什么不简单的对或错?

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

【问题讨论】:

标签: flutter dart global-variables sharedpreferences


【解决方案1】:

您可以使用 await 获取数据。

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

【讨论】:

    【解决方案2】:
    getLoginStatus().then((val){ print("Login status : $val"});
    

    then 函数应与 Futures 一起使用以访问从 future 返回的值。

    【讨论】:

    • 这很有帮助。谢谢你
    【解决方案3】:

    由于您的 getLoginStatus() 是异步的,并且将来会返回一个布尔值。因此,要获得值,您必须等待进程返回它。

    所以检索值的正确代码是:

    bool loggedInStatus = await Constants().getLoginStatus();
    print(loggedInStatus);
    

    【讨论】:

    • 这很有帮助。谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 2021-07-22
    • 2022-10-24
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多