由于nodejs> = 10 FunctionCallbackInfo :: Callee已被弃用(https://github.com/nodejs/nan/blob/master/CHANGELOG.md)。我需要更新使用v8的c ++代码,其中使用了被调用的方法名。现在如何获得?
建议改用info.Data()
。但是我不遵循如何从中获取方法名称。我猜是这样的:
void GetData(IN const Nan::FunctionCallbackInfo<v8::Value>& info)
{
v8::Local<v8::Function> data = v8::Local<v8::Function>::Cast(info.Data());
....
}
如何从data
获取方法名称?从文档看,它似乎无法再完成(https://github.com/nodejs/nan/blob/master/doc/methods.md):
注意:FunctionCallbackInfo :: Callee在10.0.0之后已在Node.js中删除,因为在V8中已弃用该函数。考虑使用info.Data()传递您需要的任何信息。
那么,如果没有提供其他信息,就无法获得被叫者的名字吗?
答案 0 :(得分:0)
这可以解决问题:
v8::Local<v8::Function> out;
out = v8::Local<v8::Function>::Cast(info.Data());
v8::String::Utf8Value callee(out->GetName()->ToString());