"delay" keyword

Tom Van Cutsem tomvc.be at gmail.com
Wed Jul 4 10:45:10 PDT 2012


This idea has been explored before. Some relevant pointers:

Kris Kowal's Q API with experimental support for using generators to write
synchronous-style yet asynchronously-executing functions:
https://github.com/kriskowal/q/tree/master/examples/async-generators

Strawman for standardization of the above idea:
http://wiki.ecmascript.org/doku.php?id=strawman:async_functions

Task.js: cooperative multithreading via generators:
http://taskjs.org/

Cheers,
Tom

2012/7/4 Patrik Stutz <patrik.stutz at gmail.com>

> Hi guys!
>
> Today, a really cool idea for a new keyword in JavaScript came to my mind.
> It's called 'delay'.
>
> What does the delay keyword ?
>
> The delay keyword does nothing more than stop the execution of the
> current stack and immediately continues to the next task in the queue. But
> that's not all! Instead of discarding the stack, it adds it to the end of
> the queue. After all tasks before it are done, the stack continues to
> execute.
>  What is it good for?
>
> delay could help make blocking code non-blocking while it still looks
> like synchronous code. A short example:
>
> setTimeout(function(){
>
>     console.log("two");
> },0);
>
> console.log("one");
>
> delay; //since there is currently another task in the queue, do this task first before continuing
>
> console.log("three");
>
> //Outputs: one, two, three
>
> This simple keyword would allow us to create a synchronous-looking code
> wich is asynchronous behind the scenes. Using node.js modules, for example,
> would no longer be impossible to use in the browser without trickery.
>
> There would be so many possibilites with such a keyword!
>
> What do YOU JAVASCRIPT DEVELOPERS think about it? What do you think can I
> do to bring this into the new ECMAscript Specification?
>
> Please disuss as much as you want! :)
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20120704/026c4257/attachment-0001.html>


More information about the es-discuss mailing list