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

エラーが発生した正確な理由はわかりませんが、emit->Call の代わりに node::MakeCallback を使用することでエラーを解消できました。

なぜこれが起こっているのか本当に不明であり、MakeCallback の非推奨についての話があったので少し心配です...

編集:これを明らかにすることができる答えを喜んで受け入れます。うまくいけば、MakeCallback" を使用することで、その間に他の誰かを救うことができます :)

于 2012-06-18T14:12:16.730 に答える