关于 Dart 的 Timer 执行定时器

发布于 2022-08-13 13:45:11 字数 1101 浏览 322 评论 0

Timer 属于 Dart 异步编程的一部分,通过 Timer 可以创建执行定时器(包括重复执行的)。主要包含 TimerTimer.periodic 两个构造函数:

Timer(Duration duration, void callback())
Timer.periodic(Duration duration, void callback(Timer timer))

分别对应 JavaScript 的 setTimeoutsetInterval,如 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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
23 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文