Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use setInterval/setTimeout in Dart SDK 0.4+

Tags:

dart

dart-html

I realised that in current Dart SDK version 0.4.1.0_r19425 methods like setTimeout, setInterval, clearTimeout, clearInterval aren't part of Window class any more and they all moved to WorkerContext.
Is there any documentation on how to use them now? Do I need to create a new instance of WorkerContext every time I want to use them?

like image 626
martin Avatar asked Mar 08 '13 14:03

martin


People also ask

How do I use setInterval instead of setTimeout?

To replace setInterval with setTimeout , change this: setInterval(function() { tick() }, 9000); to: setTimeout(function repeat() { tick(); setTimeout(repeat, 9000); }, 9000);

How do you run setInterval 5 times?

“setinterval for 5 times” Code Answer'svar intervalID = setInterval(alert, 1000); // Will alert every second. // clearInterval(intervalID); // Will clear the timer. setTimeout(alert, 1000); // Will alert once, after a second.

How do I run setTimeout multiple times?

Notes. The setTimeout() is executed only once. If you need repeated executions, use setInterval() instead. Use the clearTimeout() method to prevent the function from starting.


2 Answers

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.

like image 110
Sean Eagan Avatar answered Oct 16 '22 13:10

Sean Eagan


You can use:

1) SetInterval

_timer = new Timer.periodic(const Duration(seconds: 2), functionBack);  Where: `functionBack(Timer timer) {   print('again'); } 

2) SetTimeOut

_timer = Timer(Duration(seconds: 5), () => print('done'));  Where _time is type Time 
like image 36
Cristhian D Avatar answered Oct 16 '22 15:10

Cristhian D