blog
blog copied to clipboard
Dart 的 Timer
Timer 属于 Dart 异步编程的一部分,通过 Timer 可以创建执行定时器(包括重复执行的)。
主要包含 Timer
和 Timer.periodic
两个构造函数:
Timer(Duration duration, void callback())
Timer.periodic(Duration duration, void callback(Timer timer))
分别对应 javascript 的 setTimeout
和 setInterval
如 3 秒之后打印:
const timeout = Duration(seconds: 3);
Timer(timeout, () {
print('huruji');
});
1 秒重复打印:
Timer.periodic(Duration(seconds: 1), (Timer timer) {
print('xie');
});
需要取消定时器,可以使用实例方法 .cancel
int count = 0;
Timer myTimer;
myTimer = Timer.periodic(Duration(seconds: 1), (Timer timer) {
print('xie');
if (count == 10) {
myTimer.cancel();
}
count++;
});
Dart 和 js 一样都是单线程,所以为了能够让定时器尽快的调用,可以使用静态方法 run
Timer.run(callback)
这类似于将 setTimeout 的时间设置为 0
setTimeout(() => {}, 0)