【发布时间】:2020-01-20 15:59:54
【问题描述】:
我很难理解如何正确使用HandleScope 和EscapableHandleScope。比如来自this Node example:
MyObject::MyObject(const Napi::CallbackInfo& info) : Napi::ObjectWrap<MyObject>(info) {
Napi::Env env = info.Env();
Napi::HandleScope scope(env);
this->val_ = info[0].As<Napi::Number>().DoubleValue();
};
为什么在这种情况下我们需要创建一个新的 HandleScope?来自this other example:
Napi::Object CreateObject(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
Napi::Object obj = Napi::Object::New(env);
obj.Set(Napi::String::New(env, "msg"), info[0].ToString());
return obj;
}
为什么这里不需要?
另外,我没有找到任何使用 EscapableHandleScope 的示例,什么时候需要?
【问题讨论】:
标签: node.js nan v8 node.js-addon