吸气剂中的未来对象

时间:2019-05-18 21:50:41

标签: dart flutter

我正在为我的Locale变量在getter中调用Future对象。

如何让返回值等待它?

class ChangeLocale with ChangeNotifier {

  Locale _locale;

  Locale get locale {
    getLanguage().then((Locale prefLocale) {
      _locale = prefLocale;
    });
    return _locale;
  }

  set locale(Locale newValue) {
    print(newValue);
    _locale = newValue;
    notifyListeners();
  }
}

1 个答案:

答案 0 :(得分:0)

get不能异步。当前,您将在调用then之前返回值,因此,如果_locale的初始值为null,则getter将返回null,然后更新{{1 }}的价值,但为时已晚。

相反,您必须这样做:

_locale