Flutter/Dart 将 future bool 转换为 bool

San*_* Ks 3 dart flutter flutter-layout

有人可以帮我找出下面一段代码中的问题吗

void main() async {
  bool c =getstatus();
  print(c);
  }

Future<bool> getMockData() {
  return Future.value(false);
}

bool getstatus() async   
{
  Future<bool> stringFuture = getMockData();
  bool message =  stringFuture;
  return(message); // will print one on console.

}
Run Code Online (Sandbox Code Playgroud)

bel*_*tas 7

要从Future(异步)方法获取值,您必须获取await它们。在等待之后,你得到的变量不再是未来。所以基本上你的代码应该是这样的:

void main() async {
  bool c = await getstatus();
  print(c);
}

Future<bool> getMockData() {
  return Future.value(false);
}

Future<bool> getstatus() async {
  bool message = await getMockData();
  return message;
}
Run Code Online (Sandbox Code Playgroud)