Flutter/ dart 将未来布尔值转换为布尔值

falq053o  于 2023-01-03  发布在  Flutter
关注(0)|答案(3)|浏览(362)

有人能帮我找出下面代码中的问题吗

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.

}
30byixjq

30byixjq1#

要从Future(async)方法中获取值,你必须对它们执行await操作,在 await 之后,你得到的变量不再是Future,所以基本上你的代码应该是这样的:

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;
}
lvjbypge

lvjbypge2#

Future<bool> stringFuture = await getMockData();
vxf3dgd4

vxf3dgd43#

一个异步方法必须返回Future of something,那么在main中你必须通过写await来获得bool值

void main() async {
      bool c = await getstatus();
      print(c); // will print false on the console.
    }
    
    Future<bool> getMockData() {
      return Future.value(false);
    }
    
    Future<bool> getstatus() async {
      Future<bool> stringFuture = await getMockData();
   
      return stringFuture; // will return false.
    }

相关问题