我有一个返回类型
v8::Local<v8::Data>
的 v8 方法。我想将其转换为 v8::Local<v8::Value>
类型。 Value
是 Data
(ref) 的子类。
我尝试使用
Data
类方法,如isValue
、isModule
等来尝试将Data
转换为其子类,但它无法解析为任何
// GetModuleRequests is a v8 method
Local<FixedArray> moduleR = referrer->GetModuleRequests();
for (int i = 0, length = moduleR->Length(); i < length; ++i) {
Local<Data> moduleRequests = moduleR->Get(context, i);
}
我试过这个
Local<FixedArray> moduleR = referrer->GetModuleRequests();
for (int i = 0, length = moduleR->Length(); i < length; ++i) {
Local<Data> moduleRequests = moduleR->Get(context, i);
Local<Value> FinalVal = Local<Value>();
if(moduleRequests->IsValue()) {
Local<Value> module = moduleRequests.As<Value>();
FinalVal = module
} else {
std::cout<<"moduleRequests is not a value\n";
}
另一种方法是
Local<Value> someValue = Local<Value>::New(isolate, moduleRequests);
还有其他方法可以投射吗?
referrer->GetModuleRequests()
返回 v8::FixedArray
的局部 v8::ModuleRequest
。它不反映 v8::Data
的任何“is”检查。尝试一下
moduleRequests.As<v8::ModuleRequest>();