我需要一种机制,它会占用一小段包含同步函数调用的javascript,并将其重写为异步javascript。
所以,例如,如果我有一个片段
someSyncFunction();
console.log("function complete")
我需要重新格式化
someAsyncFunction(function () {console.log("function complete")} );
这是我可以用正则表达式执行的任务,还是我需要编写解析器?如果是后者,任何有关lib的建议会有所帮助吗?
为了使事情略微复杂化,我还需要处理递归/嵌套,例如......
someSyncFunction();
console.log("first function complete");
someSyncFunction();
console.log("second function complete");
...
答案 0 :(得分:2)
是的,您需要使用解析器。正则表达式并不能真正解析任意嵌套的javascript代码。您可能希望使用http://esprima.org/,它为您提供了一个语法树,您可以在其中找到异步函数并适当地转换树。
然而,我不认为你会想要重新发明轮子。看看这个list of tools that compile synchronous to asynchronous JavaScript。
答案 1 :(得分:-1)
感谢您的建议。结果如下......