3

Forgive that I am a beginner for Node and Nan. Now, I want to send events from nodejs addon to 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? Thanks!

simon-p-r
  • 3,623
  • 2
  • 20
  • 35
C. X. Pan
  • 31
  • 3

1 Answers1

3

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

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);
jbdemonte
  • 667
  • 1
  • 7
  • 15