您可以使用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中工作.事实上,window.setTimeout
已被删除,因此计时器是future 运行函数的唯一方式.