在异步编程中,我们使用了很多回调,如下所示:
var running = function(){
do_sth();
$.post("/xxx", function(data){
do_sth2();
$.get("/ttt", function(data){
do_sth3();
}
}
}
我认为事情应该是这样的:
var running = do_async(function(){
do_sth();
var data = $.post("/xxx");
do_sth2();
data = $.get("/ttt");
do_sth3();
});
我怎样才能做到这一点?
并且有一个项目:https ://github.com/JeffreyZhao/jscex
而且我认为这个项目不是那么容易使用(实现是通过解析源代码)
也许在未来,我们对此有原生的 javascript 支持?
我对此做了一些研究,在这里找到了一些讨论和图书馆供参考:
https://github.com/JeffreyZhao/jscex
推迟咖啡脚本 https://github.com/jashkenas/coffee-script/issues/350
合并到coffeescript: https ://github.com/jashkenas/coffee-script/issues/350
tamejs 库 http://tamejs.org/
stratifiedjs http://onilabs.com/stratifiedjs
咖啡因 http://weepy.github.com/kaffeine/
维基页面: http ://en.wikipedia.org/wiki/Continuation-passing_style
添加一个库来支持它并不是很容易,
也许在未来,javascript 会添加一个“defer”关键字。
同样的问题:Pattern for wrapping an Asynchronous JavaScript function to make it synchronous