我想一遍又一遍地运行函数,中间会有延迟.我怎么才能用Dart做到这一点?

推荐答案

您可以使用Timer类来安排一次性和重复的函数.

重复

下面是运行重复函数的方法:

import 'dart:async';
main() {
  const oneSec = Duration(seconds:1);
  Timer.periodic(oneSec, (Timer t) => print('hi!'));
}

计时器有两个参数,一个是持续时间,另一个是要运行的函数.持续时间必须是实例Duration.回调必须接受单个参数,即计时器本身.

取消重复计时器

使用timer.cancel()取消重复计时器.这是将计时器从重复计时器传递到回调运行的原因之一.


延迟一枪

要计划延迟一段时间(执行一次,以后某个时间)的一次性函数,请执行以下操作:

import 'dart:async';
main() {
  const twentyMillis = Duration(milliseconds:20);
  Timer(twentyMillis, () => print('hi!'));
}

请注意,一次性计时器的回调不带参数.


尽快开一枪

您还可以请求尽快运行函数,将来至少运行一个事件循环.

import 'dart:async';
main() {
  Timer.run(() => print('hi!'));
}

在HTML中

定时器甚至可以在HTML中工作.事实上,window.setTimeout已被删除,因此计时器是future 运行函数的唯一方式.

Dart相关问答推荐

列表、捕获和...REST";元素的模式匹配

flutter.io (dart) - 将填充设置为设备宽度的百分比?

Task 'app:processDebugResources'的Flutter执行失败

zsh:找不到命令:pub

Flutter android 生成apk

使用 dart 中的括号表示法访问对象的属性

Flutter:合并两张图片,作为单张图片存储在本地存储中

我需要在使用之前将我的 Dart 包发布到 pub.dartlang.org 吗?

如何调整ShowDialog的子级大小

如何在Flatter中将图表线 colored颜色 更改为自定义 colored颜色 代码值

Google Dart支持mixins吗?

在 Dart 中,是否可以有一个 const 闭包映射?

为什么这个文件会自动创建自己 generate_plugin_registrant.dart

你如何在 Dart 中将月份的日期格式化为11th、21st或23rd?

如何实现从左侧滑动的侧边菜单?

Flutter - 在 POST 请求中处理状态码 302

如何左对齐 Flutter 中的 OutlineButton 图标

如何在 Dart 中创建我们自己的metadata元数据?

dart中的动态和对象有什么区别?

如何在 Dart 中将日期/时间字符串转换为 DateTime 对象?