flutter 等待条件满足,然后再继续执行其余代码

标签 flutter dart

在继续其余代码之前,我需要异步函数等待某些表达式验证(例如x == true)。

现在我正在像这样使用while循环

var x = false;

someFunction() async {

   // here I want to await for 
   // as long as it takes for x to become true

   while(!x) {
       await new Future.delayed(new Duration(milliseconds: 250));
   }

   // i put 250 millisecond intentional delay 
   // to protect process from blocking.
   // x is to be set true by external function
   // rest of code ...
}

await someFunction();

您是否认为有更好的方法等待x更改为true才能继续执行?
谢谢

最佳答案

您可以使用三种方式进行异步/等待:-

void method1(){
  List<String> myArray = <String>['a','b','c'];
  print('before loop');
  myArray.forEach((String value) async {
    await delayedPrint(value);
  });  
  print('end of loop');
}

void method2() async {
  List<String> myArray = <String>['a','b','c'];
  print('before loop');
  for(int i=0; i<myArray.length; i++) {
    await delayedPrint(myArray[i]);
  }
  print('end of loop');
}

Future<void> delayedPrint(String value) async {
  await Future.delayed(Duration(seconds: 1));
  print('delayedPrint: $value');
}

关于 flutter 等待条件满足,然后再继续执行其余代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57548302/

相关文章:

flutter - 你应该如何进行矩阵变换?

firebase - 测试在带有 Firebase 插件的 Flutter Web 应用程序中不起作用

dart - Flutter 在真机上运行报错

dart - 你如何在 Flutter 中创建服务/提供者?

firebase - 函数在FLutter中返回null

flutter - 如何更改下拉下划线的颜色

flutter - 在隔离中使用类的特定实例

IOS 上的 Flutter 版本停留在 1.0.0

flutter - 如何控制提供者的对话?

dart - 错误未定义类 TimeOfDay。尝试使用 flutter 时间时