dart:async
库中Future.doWhile
方法的用法介绍如下。
用法:
Future doWhile(
FutureOr<bool> action(
)
)
重复执行一个操作,直到它返回 false
。
操作 action
可以是同步的或异步的。
只要返回 bool 值 true
或以值 true
完成的 Future<bool>
,就会重复调用该操作。
如果对 action
的调用返回 false
或完成到 false
的 Future,则迭代结束并且 doWhile 返回的未来以 null
值完成。
如果对action
的调用抛出或action
返回的future 以错误完成,则迭代结束并且doWhile 返回的future 以相同的错误完成。
对 action
的调用可能随时发生,包括在调用 doWhile
之后立即发生。唯一的限制是对 action
的新调用不会在前一个调用返回之前发生,如果它返回一个 Future<bool>
,直到未来完成。
例子:
void main() async {
var value = 0;
await Future.doWhile(() async {
value++;
await Future.delayed(const Duration(seconds: 1));
if (value == 3) {
print('Finished with $value');
return false;
}
return true;
});
}
// Outputs: 'Finished with 3'
相关用法
- Dart Future.delayed用法及代码示例
- Dart Future.any用法及代码示例
- Dart Future.value用法及代码示例
- Dart Future.wait用法及代码示例
- Dart Future.whenComplete用法及代码示例
- Dart Future.catchError用法及代码示例
- Dart Future.error用法及代码示例
- Dart Future.timeout用法及代码示例
- Dart Future.sync用法及代码示例
- Dart Future用法及代码示例
- Dart FutureExtensions.onError用法及代码示例
- Dart Function.apply用法及代码示例
- Dart FileList.first用法及代码示例
- Dart FileList.length用法及代码示例
- Dart File用法及代码示例
- Dart Finalizer.attach用法及代码示例
- Dart Float32List.view用法及代码示例
- Dart FileSystemEntity用法及代码示例
- Dart FileSystemEntity.resolveSymbolicLinks用法及代码示例
- Dart Finalizable用法及代码示例
- Dart File.renameSync用法及代码示例
- Dart Float32x4List.sublist用法及代码示例
- Dart Finalizer用法及代码示例
- Dart FileSystemEntity.resolveSymbolicLinksSync用法及代码示例
- Dart FileList.elementAt用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 doWhile method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。