当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart Future.doWhile用法及代码示例


dart:async 库中Future.doWhile 方法的用法介绍如下。

用法:

Future doWhile(
   FutureOr<bool> action(
)   
)

重复执行一个操作,直到它返回 false

操作 action 可以是同步的或异步的。

只要返回 booltrue 或以值 true 完成的 Future<bool> ,就会重复调用该操作。

如果对 action 的调用返回 false 或完成到 falseFuture,则迭代结束并且 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.dev大神的英文原创作品 doWhile method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。