на асинхронном программировании, мы используем много обратных вызовов, например:Может ли javascript комбинировать асинхронный код в одну функцию?
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?
Я сделал некоторые исследования по этому вопросу, нашел disscussion и библиотеку здесь для справки:
https://github.com/JeffreyZhao/jscex
Defer CoffeeScript 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
Kaffeine 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
Если вы хотите, чтобы выполнение приостанавливалось до тех пор, пока не завершится выполнение '$ .post()' (или другой функции async), это будет _synchronous_ code, а не _async_. (Что вы делаете, но на самом деле не должны этого делать.) Изучили ли вы использование [отложенной функциональности jQuery] (http://api.jquery.com/category/deferred-object/), которая, по крайней мере, позволила бы вам структурировать ваши код немного по-другому, если не совсем так, как вы хотите? – nnnnnn
Я думаю, что Jscex прост в использовании. Он основан на технологии компиляции, но предназначен для того, чтобы быть прозрачным для пользователя. Не могли бы вы рассказать мне об этом проекте? –