我想一遍又一遍地运行一个函数,中间有一个延迟。我怎样才能用 Dart 做到这一点?
您可以使用Timer
类来安排一次性和重复功能。
重复
以下是运行重复函数的方法:
import 'dart:async';
main() {
const oneSec = Duration(seconds:1);
Timer.periodic(oneSec, (Timer t) => print('hi!'));
}
计时器有两个参数,一个持续时间和一个要运行的函数。持续时间必须是一个实例Duration
。回调必须采用单个参数,即计时器本身。
取消重复定时器
Use timer.cancel()
取消重复计时器。这是计时器从重复计时器传递到回调运行的原因之一。
延迟后一击
要在延迟后安排一次性函数(在将来的某个时间执行一次):
import 'dart:async';
main() {
const twentyMillis = Duration(milliseconds:20);
Timer(twentyMillis, () => print('hi!'));
}
请注意,一次性计时器的回调不带参数。
尽快一击
您还可以请求函数尽快运行,至少在未来一个事件循环周期内运行。
import 'dart:async';
main() {
Timer.run(() => print('hi!'));
}
In HTML
计时器甚至可以在 HTML 中工作。实际上,window.setTimeout
已被删除,因此 Timer 是将来运行函数的唯一方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)