我的工作需要一个旧的Node.js本机插件,但由于许多本机API弃用,因此不再适用于Node.js 12及更高版本。在数十种错误中,我修复了除一个错误以外的所有错误,这与初始化和调用回调函数有关。新的API需要4个参数,而旧的则需要3个参数。这是损坏的代码:
void node_mpg123_feed_after (uv_work_t *req) {
Nan::HandleScope scope;
feed_req *r = (feed_req *)req->data;
Local<Value> argv[1];
argv[0] = Nan::New<Integer>(r->rtn);
Nan::TryCatch try_catch;
Nan::New(r->callback)->Call(Nan::getcurrentContext()->Global(),1,argv); //Compilation error in this line
// cleanup
r->callback.Reset();
delete r;
if (try_catch.HasCaught()) {
FatalException(try_catch);
}
}
具体地说,note the new API使用4个参数,而contrast it with the old one仅使用3个参数。我不知道要输入什么参数,因为互联网上基本上没有新API的教程,互联网上充斥着旧的破旧示例。
有人能指出我正确的方向吗?我收到的确切错误消息是在上面标记有注释的行中的error C2660: 'v8::Function::Call': function does not take 3 arguments
。