javascript - 在 V8 中异步运行 C++ 和 JS 代码

标签 javascript c++ scripting embedding v8

我目前正在尝试在我的一个项目中嵌入 V8。因为我使用 libev 来监听套接字和事件,并希望能够用 JS 编写事件脚本,所以我希望能够只运行 v8 一段时间,然后跳回 C++ 来检查事件等,然后返回运行 JS 代码。由于我之前没有做过多少脚本嵌入,所以我确信通常有一些聪明的方法可以完成,所以所有的想法都会受到赞赏。

最佳答案

我发现最简洁的方法是在 JS 中创建 setTimeout 和 clearTimeout 函数。 setTimeout 创建一个 ev::Timer,它有一个在一定时间后被调用的回调。这使得当你调用一个 JS 函数时,你会继续执行它直到它返回,但是该函数可以设置一些超时,这些超时不会在你退出当前 JS 并且没有发生任何其他 libev 之后调用执行期间的事件,在这种情况下,首先处理这些事件(在 C++ 中)。这种方法的局限性在于,编写 JS 的编码人员必须记住不要编写进入永恒 while 循环或类似循环的函数。循环是这样完成的:

function repeat() { setTimeout(repeat, 0); }

关于javascript - 在 V8 中异步运行 C++ 和 JS 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7335710/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'responseText' of undefined

javascript - Gulp 错误 - 错误 : Cannot find module 'sigmund'

javascript - 动态生成的 SVG 的高分辨率打印输出

javascript - Google 应用程序脚本侧边栏因 onclick 而变成空白

c++ - 如何从 vector 中提取子 vector ?

c++ - 创建可变参数模板函数来测量和执行其他函数

eclipse 中的 C++ 编码...帮助代码辅助

sorting - Elasticsearch使用脚本对日期桶进行排序

bash - #! 脚本可以用作解释器吗?散列线?

javascript - Indesign JavaScript 在书中创建文本和文档内超链接 - 非常慢