Node.js 插件需要多次新实例

如何避免使用 require('c++addon') 进行缓存。我有一个插件,但每次都想有一个新的。


例如


for(...)

 addon[i] = require('addon'); // I want a new one everytime

 addon[i].somefunction(); //  

谢谢你。


慕码人8056858
浏览 161回答 2
2回答

慕的地8271018

您将不得不重构您的插件模块,以便它公开一个函数来构造这些实例,例如const myAddon = require('addon');objects = [myAddon.create(), myAddon.create(), myAddon.create()];objects[0].somefunction();

POPMUISE

这是一个示例代码,用于创建本机对象的多个实例。 https://github.com/nodejs/node-addon-examples/blob/master/6_object_wrap/napi/myobject.cc如果您正在处理 native 模块,那么 native 模块也必须编写一些额外的代码来创建一个新实例。除了创建新实例之外,本机模块还需要负责实例的生命周期管理。典型的 JavaScript 代码启动创建对象的方式有两种。一种是使用其构造函数,另一种是使用函数调用。负责创建新实例的本机模块也必须对这两者进行不同的处理。您可以通过参考有关以下内容的文档以及示例代码https://nodejs.org/api/n-api.html获得更多见解生命周期管理:napi_refnapi_create_reference()检查是否是构造函数调用napi_get_new_target()根据现有的本机对象(类型为 napi_value)来实例化新的 JavaScript 对象napi_new_instance()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript