3

原谅我是 Node 和 Nan 的初学者。现在,我想将来自 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);

但是,Segmentation fault (core dumped) 那么,如何准确地使用 Nan::MakeCallback 呢?谢谢!

4

1 回答 1

3

这对我有用:

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

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

这是一个带有多个参数的示例:

  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);
于 2017-03-20T22:05:02.813 回答