简体   繁体   English

如何使用 Nan::MakeCallback 将事件从 nodejs 插件发送到 javascript?

[英]How to use Nan::MakeCallback to send events from nodejs addon to javascript?

Forgive that I am a beginner for Node and Nan.原谅我是 Node 和 Nan 的初学者。 Now, I want to send events from nodejs addon to javascript.现在,我想将事件从 nodejs 插件发送到 javascript。

v8::Local<v8::Object> obj
Nan::Persistent<v8::Object> persistent;
persistent.Reset(obj);
v8::Local<v8::Object> orig_obj = Nan::New(persistent);
v8::Local<v8::Value> argv[1] = {Nan::New("New Data").ToLocalChecked()};
Nan::MakeCallback(orig_obj, "emit", 1, argv);

But, Segmentation fault (core dumped) So, how to use Nan::MakeCallback exactly?但是,Segmentation fault (core dumped) 那么,究竟如何使用 Nan::MakeCallback 呢? Thanks!谢谢!

This works for me:这对我有用:

  const unsigned argc = 1;
  v8::Local<v8::Value> argv[argc] = { Nan::New("hello world").ToLocalChecked() };
  Nan::MakeCallback(Nan::GetCurrentContext()->Global(), cb, argc, argv);

source: https://github.com/nodejs/node-addon-examples/blob/master/3_callbacks/nan/addon.cc来源: https : //github.com/nodejs/node-addon-examples/blob/master/3_callbacks/nan/addon.cc

Here is an example with multiple parameters:这是一个带有多个参数的示例:

  const unsigned argc = 3;
  v8::Local<v8::Value> argv[argc] = {
    Nan::New("hello world").ToLocalChecked(),
    Nan::New(123),
    Nan::New(456)
  };
  Nan::MakeCallback(Nan::GetCurrentContext()->Global(), cb, argc, argv);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM