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 <[email protected]> > 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 > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

