【问题标题】:'v8::Value::ToNumber': was declared deprecated'v8::Value::ToNumber': 被宣布弃用
【发布时间】:2017-10-18 18:35:43
【问题描述】:

我正在尝试访问一个已知对象并将其属性之一作为Number

不幸的是,下面的代码...

Isolate *isolate = args.GetIsolate();

Local<Object> opts = args[0]->ToObject();

Local<Number> mode = opts->Get(String::NewFromUtf8(isolate, "mode"))->ToNumber();

给出以下警告:

警告 C4996: 'v8::Value::ToNumber': 已宣布弃用
....node-gyp\8.5.0\include\node\v8.h(9578):注意:参见 'v8::Value::ToNumber' 的声明

在 v8.h 中,我注意到ToNumber 上的评论:“使用可能版本”。我试图将其转换为Maybe,但我还没有尝试正确编译。使用Maybe 和获取Number 对象的正确方法是什么?

【问题讨论】:

    标签: c++ node.js v8 node-gyp deprecation-warning


    【解决方案1】:

    看起来v8.h 中的“使用可能的版本”评论让我走错了方向。弃用通知似乎适用于缺少隔离的方法重载。如果你通过隔离...

    ->ToNumber(isolate);
    

    它在没有警告的情况下工作。

    【讨论】:

    • 但是这种方法破坏了向后兼容性。即error C2664: 'bool v8::Value::BooleanValue(void) const': cannot convert argument 1 from 'v8::Isolate *' to 'v8::Local&lt;v8::Context&gt;'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    相关资源
    最近更新 更多