我将一些JavaScript移植到Dart。我有一段代码使用window.setTimeout
在一段时间后运行回调。在某些情况下,该回调会通过window.clearTimeout
取消。
Dart的相当于什么?我可以使用new Future.delayed
替换setTimeout
,但我无法找到取消此功能的方法。我也无法从Dart致电clearTimeout
。
答案 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();
}