在dart使用计时器需要导入包import 'dart:async'
;
Timer
计时器类,可配置为一次或多次触发。
Constructors 构造函数
- Timer(Duration duration, void callback())
- Timer.periodic(Duration duration, void callback(Timer timer)) 重复计时器
单次计时器
main() {
//单次计时器
Timer(Duration(seconds: 2), () => {print('这是一次性定时器,延迟2秒执行')});
}
复制代码
重复计时器
main() {
// i>10后取消计时器
num i = 1;
Timer.periodic(Duration(seconds: 1), (timer) {
print(timer.isActive); // true 返回定时器是否仍处于活动状态
print(timer.runtimeType); // _Timer 对象的运行时类型
print(i++);
if (i > 10) {
print(timer.toString()); // 返回此对象的字符串表示形式
timer.cancel(); // 可以使用timer.cancel()来取消定时器,避免无限回调
print(timer.hashCode); // 此对象的哈希值
print(timer.isActive); // false
}
});
}
复制代码
Timer.run() 尽快异步运行给定的回调
Timer.run(void Function() callback);
import 'dart:async';
main() {
var futureInstance = Future.value(12345);
for (var i = 0; i < 1; i++) {
Future.microtask(() => print('这是Future.microtask()微任务方法'));
externalApproach();
print('第一个for循环: $i');
futureInstance.then((value) => print(value));
Timer.run(methods);
}
for (var i = 0; i < 2; i++) {
print('第二个for循环: $i');
}
Timer(Duration(milliseconds: 0), () => {print("一次性的定时器")});
}
void methods() async {
print("尽快异步运行给定的回调");
}
void externalApproach() {
print("这是外部方法");
}
/*
这是外部方法
第一个for循环: 0
第二个for循环: 0 第二个for循环: 1
12345
这是Future.microtask()微任务方法
尽快异步运行给定的回调
一次性的定时器
*/
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END