旧的IActiveScript COM接口有一个很棒的方法:InterruptScriptThread,可以从任何线程调用该方法,以便在主JS线程中抛出异常,即使它处于无限循环中。
有没有办法用V8做同样的事情?
发布于 2021-06-14 17:43:02
我不知道IActiveScript怎么样,但V8有v8::Isolate::TerminateExecution,听起来就是你要找的。它导致抛出"uncatchable“(由JavaScript)异常,因此该异常将一直传播到您的嵌入器,您可以在其中决定如何继续。
终止请求是可恢复的,因此在终止前一个正在处理的请求后,您仍然可以使用Isolate。
您可以在V8的test/cctest/test-api.cc中找到一些用法示例。
https://stackoverflow.com/questions/67967803
复制相似问题