将 v8::Local<v8::Data> 转换为 v8::Local<v8::Value>

问题描述 投票:0回答:1

我有一个返回类型

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);

还有其他方法可以投射吗?

c++ v8
1个回答
0
投票

referrer->GetModuleRequests()
返回
v8::FixedArray
的局部
v8::ModuleRequest
。它不反映
v8::Data
的任何“is”检查。尝试一下

moduleRequests.As<v8::ModuleRequest>();
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.