How to use setInterval/setTimeout in Dart SDK 0.4+
In addition to Timer mentioned by Chris, there is a Future-based API:
var future = new Future.delayed(const Duration(milliseconds: 10), doStuffCallback);
There is not yet direct support for cancelling a Future callback, but this works pretty well:
var future = new Future.delayed(const Duration(milliseconds: 10));var subscription = future.asStream().listen(doStuffCallback);// ...subscription.cancel();
Hopefully, there will soon be a Stream version of Timer.repeating as well.
From this post on the group (Feb 14th 2013).
// Old Versionwindow.setTimeout(() { doStuff(); }, 0);// New Versionimport 'dart:async';Timer.run(doStuffCallback);
And another example (copied from the same post)
// Old version: var id = window.setTimeout(doStuffCallback, 10);.... some time later....window.clearTimeout(id);id = window.setInterval(doStuffCallback, 1000);window.clearInterval(id);// New version:var timer = new Timer(const Duration(milliseconds: 10), doStuffCallback);... some time later ---timer.cancel();timer = new Timer.repeating(const Duration(seconds: 1), doStuffCallback);timer.cancel();
Specifically, they are now part of the Timer
class in the dart:async
library (rather than WorkerContext
, which seems to be IndexedDb specific). API docs here