我希望在将 haxe
转换为 JavaScript
时,能够向其中的方法添加异步操作。
这是我的 Haxe
代码:
@:expose
class Main implements IAsync {
static function main() {
trace("test");
}
static function testAwait() {
return 1;
}
}
并且这段代码被转换成了如下的代码:
. . .
Main.testAwait = function() {
return Main.test();
};
. . .
我希望能够在这段代码中将 function
替换成 async function
。
Main.testAwait = async function() {
return Main.test();
};
但是我只能更改代码宏的方法名称:
package haxe_test;
import haxe.macro.Expr;
import haxe.macro.Context;
using haxe.macro.Tools;
using haxe_test.AsyncBuilder;
class BuildHub {
macro static public function build():Array<Field> {
var fields = Context.getBuildFields();
var testFunc:Function = {
expr: macro return $v{1},
ret: null,
params: [],
args: []
};
fields.push({
name: "testAwait",
access: [Access.AStatic],
kind: FieldType.FFun(testFunc),
pos: Context.currentPos(),
});
return fields;
}
如何将
function
替换为async function
?
更新:我简化了代码。也许编译器或JSGenApi有什么选项可以帮助我吗?