Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在异步插件中正确使用HandleScope大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个异步Node Addon,但我一直在努力弄清楚是否需要在调用客户端 JavaScript回调的“After”函数中使用HandleScope.我已经看到了有和没有新范围的示例,但从来没有任何解释原因.这是一个例子:

void asyncWorkAfter(uv_work_t* req) {
   HandleScope scope; // <-- Do you need a new scope?

   const int argc = 1;
   Local<Value> foo = String::New("foo");
   Local<Value> argv[] = { foo };

   // assume I got my callBACk function out of req
   callBACk->Call(Context::GetCurrent()->Global(),argc,argv);

   callBACk.Dispose();

   // if i use a new HandleScope,what happens to argv when we go out of scope?
   // Do i need to do something like a scope.Close() to copy argv to the parent scope?
}

在拨打回叫电话时,您是否需要/想要一个HandleScope?
如果您使用新的HandleScope,示例中的argv会发生什么?

解决方法

String :: New(“foo”)将在堆上分配一些东西并返一个句柄,因此你需要释放这个句柄所引用的内存.如果将它们附加到HandleScope v8,一旦所有参计数为零,将为您执行此操作.

https://developers.google.com/v8/embed

大佬总结

以上是大佬教程为你收集整理的node.js – 在异步插件中正确使用HandleScope全部内容,希望文章能够帮你解决node.js – 在异步插件中正确使用HandleScope所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。