如何将带有缓冲区的对象从插件发送到节点线程安全?

问题描述 投票:0回答:1

我正在尝试将一个对象从插件发送到节点,但得到:no matching function for call to ‘Napi::Object::New(Napi::Env&, Napi::Object&)’

我该如何实现。

任何帮助将不胜感激。下面是有问题的代码。

[std::shared_ptr<ThreadSafeCallback> callback = NULL; //全局声明

callback = std::make_shared<ThreadSafeCallback> (info[0].As<Function>());    
std::thread([callback]
{
    try
    {
          callback->call([result, data](Napi::Env env, std::vector<napi_value>& args){
          const unsigned char* t = reinterpret_cast<const unsigned char *>( "123" );
          Object obj = Object::New(env);
          obj.Set("name", "world");
          obj.Set("frame", (char *)t);
            args = { env.Undefined(), Napi::Object::New(env, obj) }; // faile here
            // would like to have {"name": test, frame: buf}
          });
    }
}).detach();
c++ node.js node-addon-api n-api
1个回答
0
投票

只是将Napi :: Object :: New更改为Napi :: Object :: Value。它在文档中,但是不知何故我错过了。

© www.soinside.com 2019 - 2024. All rights reserved.