我正在与node.js c ++插件中的 uv_queue_work 进行一些并行工作。
一切正常,直到我尝试从Complete方法回调JS 。
我得到: CHECK(thread_local_top() - > TryCatchHandler()==那个)失败。
有关可能导致此问题的任何指示?
我使用以下代码进行回调:
//Get emit method from JS object and check !IsEmpty and IsFunction
v8::TryCatch tc;
emit->Call(pxy,1,argv); // The error happens in this statement.
if (tc.HasCaught()){
//Some handler code
}
答案 0 :(得分:0)
好的,不确定错误发生的确切原因,但我能够通过使用node :: MakeCallback而不是emit-> Call来消除它。
真的不确定为什么会这样,有点担心因为有人讨论过弃用MakeCallback ...
编辑: 我很乐意接受能够阐明这一点的任何答案。希望MakeCallback的使用“同时节省其他人:”