現在のDartSDKバージョン0.4.1.0_r19425では、setTimeout
、setInterval
、clearTimeout
、clearInterval
などのメソッドは の一部ではないことに気付きました。 Window
クラスはもうあり、それらはすべて WorkerContext
に移動しました。
今それらを使用する方法についてのドキュメントはありますか?使用するたびにWorkerContext
の新しいインスタンスを作成する必要がありますか?
クリスが言及したタイマーに加えて、 将来ベース APIがあります:
var future = new Future.delayed(const Duration(milliseconds: 10), doStuffCallback);
Futureコールバックをキャンセルするための直接的なサポートはまだありませんが、これはかなりうまく機能します。
var future = new Future.delayed(const Duration(milliseconds: 10));
var subscription = future.asStream().listen(doStuffCallback);
// ...
subscription.cancel();
うまくいけば、すぐに Timer.repeatingのストリームバージョン もあります。
これから グループへの投稿 (2013年2月14日)。
// Old Version
window.setTimeout(() { doStuff(); }, 0);
// New Version
import 'Dart:async';
Timer.run(doStuffCallback);
そして別の例(同じ投稿からコピー)
// 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();
具体的には、これらはDart:async
ライブラリのTimer
クラスの一部になりました(IndexedDb固有のように見えるWorkerContext
ではありません)。 APIドキュメントはこちら