簡體   English   中英

使用參數導出多個函數

[英]Exporting multiple functions with arguments

我要做的就是從模塊中導出兩個函數。 一個函數帶有一個參數,另一個不帶參數:

function initClass(params)
{
   return new Promise( (resolve, reject) => {
        if (!wallet) {
            wallet = new WalletClient(params);
            resolve(wallet);
        } else {
            console.log('Wallet is initialized');
            resolve(wallet);
        }
});
}

function getInstance()
{
   return wallet;
}

僅對於initClass(params) ,我可以這樣做:

module.exports = (params) => {
   initClass(params)
}

然后我將其稱為:

var init = require('./class.js')(params).initClass(params);

這很好。

現在,對於我也要導出getInstance() ,我嘗試執行以下操作,但似乎不起作用。

module.exports = (params) => {
   initClass(params),
   getInstance
}

這抱怨說沒有函數getInstance

然后我嘗試了這個:

module.exports.init = (params) => {
   initClass(params)
}

module.exports.instance = {
   getInstance
}

然后稱他們為:

var init = require('./class.js').init(params).initClass(params);

導出這樣的多個函數的正確方法是什么? 謝謝。

如果我理解正確,那么您嘗試導出多種方法(如果是這種情況,請簡單地使用此方法)。

   module.exports = {
        method: function() {},
        otherMethod: function(parmas) {}
    }

在您的代碼中使用這樣的代碼。

 var init = require('./class.js');
    init.method()
    init.otherMethond(paramObj)

如果要在以下情況下使用,則需要查看有關方法鏈接的信息。

var init = require('./class.js').init(params).initClass(params);

您使它變得比所需的更加復雜。 定義函數后,可以使用以下命令將其導出:

module.exports = {
  initClass,
  getInstance
}

要使用它,請執行以下操作:

const init = require("./class.js");
init.initClass(params);
const instance = init.getInstance();

從模塊中導出的是一個對象(在上面的示例中我將其命名為init ),該對象包含兩個函數。 你不必在你的時間傳遞函數的參數require

module.exports基本上是一個帶有鍵的對象,該鍵可以引用文件的任何變量/函數。

module.exports.initClass = function (params){
...
}

module.exports.getInstance = function (){
}

導入時

var init = require('./class.') // init object has two keys -> initClass and getInstance
 init.initClass('abc')
 init.getInstance()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM