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

Dan*_*eny 11 settimeout dart dart-async

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

Dart的相当于什么?我可以new Future.delayed用来替换setTimeout,但我看不到取消它的方法.我也无法找到clearTimeoutDart的电话.

Gün*_*uer 21

您可以使用Timer类

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

timer.cancel();
Run Code Online (Sandbox Code Playgroud)

  • 据我所知,事实并非如此。“Future.delayed”使用“Timer”,但除此之外我认为它们不相关(但不确定)。 (2认同)
  • 是使用时间可以取消的东西.Future.delayed在后台使用Timer,反之亦然.您可以在此处查看实施:https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/sdk/lib/async/future.dart#224 (2认同)