【问题标题】:How do I do the equivalent of setTimeout + clearTimeout in Dart?如何在 Dart 中执行相当于 setTimeout + clearTimeout 的操作?
【发布时间】:2015-01-19 17:08:19
【问题描述】:

我正在将一些 JavaScript 移植到 Dart。我的代码使用window.setTimeout 在一段时间后运行回调。在某些情况下,该回调会通过window.clearTimeout 取消。

在 Dart 中这个等价物是什么?我可以使用new Future.delayed 替换setTimeout,但我看不到取消它的方法。我也找不到从 Dart 打电话给clearTimeout

【问题讨论】:

    标签: dart settimeout dart-async


    【解决方案1】:

    您可以使用Timer class

    import 'dart:async';
    
    var timer = Timer(Duration(seconds: 1), () => print('done'));
    
    timer.cancel();
    

    【讨论】:

    【解决方案2】:

    如果你想模仿 JavaScript API:

    import 'dart:async';
    
    Timer setTimeout(callback, [int duration = 1000]) {
      return Timer(Duration(milliseconds: duration), callback);
    }
    
    void clearTimeout(Timer t) {
      t.cancel();
    }
    

    【讨论】:

      猜你喜欢
      • 2016-02-14
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 2011-05-03
      • 2016-02-14
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多