1

我在 node.js c++ 插件中使用uv_queue_work做一些并行工作。

一切正常,直到我尝试从 Complete 方法回调到 JS 。

我得到:CHECK(thread_local_top()->TryCatchHandler() == that) 失败。

关于可能导致这种情况的任何指示?

我正在使用以下代码进行回调:

    //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
    }
4

1 回答 1

0

好的,不确定发生错误的确切原因,但我能够通过使用 node::MakeCallback 而不是 emit->Call 来消除它。

真的不确定为什么会发生这种情况,并且有点担心,因为一直在谈论弃用 MakeCallback ......

编辑:我很乐意接受任何可以阐明这一点的答案。希望同时使用 MakeCallback” 可以拯救其他人 :)

于 2012-06-18T14:12:16.730 回答