首页 > 解决方案 > node-addon-api 传递另一个类的对象作为回调函数参数

问题描述

如何在 node-addon-api 中将另一个类的对象作为回调函数的参数传递?

代码片段:

#include <napi.h>
#include "Third_Party_Library.h"

using namespace Napi;

class WorkerInit : public AsyncWorker {
 public:
  WorkerInit(Function &callback) : AsyncWorker(callback) {}

 private:
  void Execute() {
    Third_Party_Library_Init();
  }

  void OnOK() {
    Napi::HandleScope scope(Env());

    Callback().Call(
        {
            Number::New(Env(), 0),
            Third_Party_Library_Method()
        }
    );

  }
};

Object Init(Env env, Object exports) {
  exports.Set(String::New(env, "init"), Function::New(env, Init));

  return exports;
};

NODE_API_MODULE(
    module_name,
    Init
);

在这里,我一直在尝试异步执行代码。但我无法编译代码,因为它抛出“没有匹配的成员函数调用'Call'Callback().Call(”错误。

我需要在我的 js 脚本中返回 Third_Party_Library_Method() 的返回值。有没有办法将此对象转换为通用 node-addon-api 对象?

我是 C++ 的新手,任何帮助都将不胜感激。

标签: javascriptc++node.jsnode-addon-api

解决方案


推荐阅读