JeffreyZhao / wind

Asynchronous flow control in JavaScript, with JavaScript.
http://windjs.org/
1.54k stars 238 forks source link

能否将 Jscex.compile("async", function (){}) 改为更简便的接口 #44

Closed bastengao closed 12 years ago

bastengao commented 12 years ago

能否将 Jscex.compile("async", function (){}) 改为更简单的接口,每次都输 Jscex.compile("async") 很难受, 能否改为 Jscex.compileAsync( function () { } ) 或者其他类似的更简便的接口.

JeffreyZhao commented 12 years ago

Jscex.compile("async", ...)Jscex.compileAsync(...)没多大区别吧……还有我觉得既然每次输入都觉得很烦的话,应该很自然地把它添加为code snippet吧……

audreyt commented 12 years ago

或者可以自己定義一個?

function $async (cb) { return Jscex.compile("async", cb) }

var fun = eval($async(function() {
    ...;
}));
JeffreyZhao commented 12 years ago

@audreyt 当然在一定程度上这也是可以的……不过有个问题是,预编译器其实只认Jscex.compile("<name>", function () {}) 这种形式,我也考虑过怎么让预编译器去识别函数的别名,但总找不到太好的方法……

audreyt commented 12 years ago

也許 Jscex.defineCompileShortcut($async, "async") 然後認 eval($async...); ?

JeffreyZhao commented 12 years ago

@audreyt 多谢,说不定可以一试。不过倒不需要定义这个方法,只需要给预编译器加个参数(预编译器是个命令行程序),例如:

jscexc -input ... -output ... --shortcut:async "$async"

当然具体什么语法需要再想想……