Javascript,异步并返回到完全相同的地方

标签 javascript node.js interpreter

我的输入是可以预处理的 JavaScript 代码..

在某个函数中间的某个特定点,我需要用一些异步请求(例如异步 AJAX 请求)替换一个 token 。

在运行时:当异步请求返回时(正在执行回调),我需要返回到执行异步调用之前代码中完全相同的位置(具有相同的上下文)。

这可能吗?有什么想法吗?

请注意,(1)我可以根据自己的喜好预处理和更改代码..
(2) token 实际上可以在任何地方,在循环中或其他任何地方。(3) token 仅代表异步调用的位置,我可以解析整个文档

此代码可能在浏览器上或通过 Node.js 运行

示例代码:

function input(num){
     num +=10;
     <token>
     return num;
}

会翻译成类似的东西

function input(num){
     num +=10;
     wait(async-request(...,callback));
     return num;
}

更新:在我阅读您的回答后,这里有一个附加问题, Javascript: sync to async converter libs

最佳答案

有几个项目尝试使用延续将以同步模式编写的代码重写为异步代码。例如。您可能想看看:

https://github.com/Sage/streamlinejs

某些模式(循环、try/catch)可能比简单的线性流带来更多挑战,但我很确定在一般情况下这是一个可以解决的问题。不过,我认为您无法通过简单的 token 替换来完成此操作 - 您需要解析 javascript 并对其进行转换。

关于Javascript,异步并返回到完全相同的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6218559/

相关文章:

javascript - 使用 jQuery/javascript 更改 html 文本

javascript - d3嵌套选择教程不渲染表格

node.js - 为什么对 Ingress (GKE) 的此 HTTP GET 请求始终返回 400(错误请求)错误?

node.js - Mongoose 与自定义字段的关系

python - Python 解释器可以优化哪些东西?

单击 asp.net 中按钮的 JavaScript 在母版页中不起作用

javascript - 表格在悬停时填充 div

jquery 客户端没有得到 Node js 服务器响应

haskell - System.Plugins 加载器似乎在看到一次失败后假设失败

javascript - Visual Studio Code 中是否有 "immediate window"来运行 Javascript?