如何在Dart中执行相当于setTimeout + clearTimeout的操作?

时间:2014-11-21 14:12:59

标签: dart settimeout dart-async

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

Dart的相当于什么?我可以使用new Future.delayed替换setTimeout,但我无法找到取消此功能的方法。我也无法从Dart致电clearTimeout

2 个答案:

答案 0 :(得分:13)

您可以使用Timer class

var timer = Timer(Duration(seconds: 1), () => print('done'));

timer.cancel();

答案 1 :(得分:0)

如果要模仿JavaScript API:

import 'dart:async';

Timer setTimeout(callback, [int duration = 1000]) {
  return Timer(Duration(milliseconds: duration), callback);
}

void clearTimeout(Timer t) {
  t.cancel();
}