亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

慕碼人8056858 2022-01-01 20:45:00
如何避免使用 require('c++addon') 進行緩存。我有一個插件,但每次都想有一個新的。例如for(...) addon[i] = require('addon'); // I want a new one everytime addon[i].somefunction(); //  謝謝你。
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

您將不得不重構您的插件模塊,以便它公開一個函數來構造這些實例,例如


const myAddon = require('addon');

objects = [myAddon.create(), myAddon.create(), myAddon.create()];

objects[0].somefunction();


查看完整回答
反對 回復 2022-01-01
?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

這是一個示例代碼,用于創建本機對象的多個實例。 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_ref
    napi_create_reference()

  • 檢查是否是構造函數調用
    napi_get_new_target()

  • 根據現有的本機對象(類型為 napi_value)來實例化新的 JavaScript 對象
    napi_new_instance()


查看完整回答
反對 回復 2022-01-01
  • 2 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號