繁体   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