我有一个本机插件,实现了一个接受回调并以可能的错误和结果调用该回调的函数。
我目前有来自NodeJS文档的以下代码,该代码直接使用结果调用该回调:
v8::Local<v8::Function> callback = v8::Local<v8::Function>::Cast(args[0]);
const unsigned callback_argc = 1;
v8::Local<v8::Value> callback_arguments[callback_argc] = { physical_drives };
callback->Call(v8::Context::GetCurrent()->Global(), callback_argc, callback_arguments);
在某些情况下,我想使用null
第一个参数调用回调:
v8::Local<v8::Value> callback_arguments[callback_argc] = {
v8::Null()
physical_drives
};
由于我无法使用初始化callback_arguments
,v8::Null()
或者v8::Undefined()
由于这些函数返回v8::Primitive
一阵callback_arguments
包含v8::Value
s,因此失败了。
手动转换也是不可能的:
v8::Local<v8::Value>::Cast(v8::Null());
将null
/undefined
值传递给回调的正确方法是什么?
v8::Primitive
是的子类,v8::Value
因此完全可以上传它。该代码无法编译,因为您无法向下转换v8::Handle
到v8::Local
。
只需更改类型callback_arguments
:
v8::Handle<v8::Value> callback_arguments[callback_argc] = {
v8::Null(),
physical_drives
};
这样编译就可以了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句