-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
It's often a requirement to defer a function: in order to complete a Future asynchronously, or to wait for the browser to paint.
Issues 3356 and 2705 can be resolved with an ability to defer a function.
window.setInterval(0, f) (and therefore new Timer(f, 0)) isn't sufficient because it does not invoke the callback on the current or next event loop, but waits at least 4ms (html5 spec) or longer depending on the browser.
IE 10 is adding setImmediate() to handler this and it can be emulated with postMessage.
GWT allows a command to be deferred either till the end of the current event loop, or to the beginning of the next, which follows layout/paint.
This function should live in the same library as Future so that Future can automatically defer Future.complete()
Activity
justinfagnani commentedon Oct 5, 2012
Marked this as blocking #3356.
lrhn commentedon Oct 10, 2012
Added Library-Isolates label.
DartBot commentedon Oct 30, 2012
This comment was originally written by ross.m....@gmail.com
One thing I always liked in GWT was the Scheduler for this:
http://google-web-toolkit.googlecode.com/svn/javadoc/2.0/com/google/gwt/core/client/Scheduler.html
I'm not saying to take that Java class 'as is' - but the functionality / granularity is great.
DartBot commentedon Nov 4, 2012
This comment was originally written by ladicek@gmail.com
I think this is actually a duplicate of issue #3260.
dgrove commentedon Jan 11, 2013
Added Library-Isolate label.
dgrove commentedon Jan 11, 2013
Removed Library-Isolates label.
andersjohnsen commentedon Oct 15, 2013
We've added 'scheduleMicrotask' to dart:async to do exactly this. See http://api.dartlang.org/docs/bleeding_edge/dart_async.html#scheduleMicrotask.
Note that some implementations still use Timer.run(...) to implement this, thus still delaying the execution unnecessarily long. This is currently being worked on (there are individual bugs for that).
Added Fixed label.