Node.js“require” - 避免重复运行

问题描述 投票:0回答:1

短情报告:

我有2个脚本,它们对交换进行了大量的API调用。两个脚本上的某些调用(主要是平衡检查)是相同的。

为了限制API调用,我将所有这些重复调用放在第三个脚本中,该脚本将该数据放入文件中。

脚本1和2都从该文件中读取,并且一切正常。

但是,为了进一步减少文件写入的开销并且每3秒读取一次,我试验了“require”

脚本1现在需要脚本3,并且平衡数组以这种方式传递。

我没想到的是,我不再需要单独运行脚本3了。在启动脚本1时,脚本3显然在后台运行(并将console.log消息传递给脚本1)

现在回答问题:如果我在脚本2中添加相同的需求,脚本3是否会有效地运行两次?那会破坏第三个剧本的整个目的......

要清楚:脚本3只是一个函数,在间隔中运行,根本没有来自脚本1和2的任何输入。balance数组是唯一的导出。

javascript node.js require
1个回答
0
投票

第一次你require文件,它被同步评估 - 如果它成功完成(不抛出),它的module.exports值被缓存。

更进一步,你require该文件,你得到缓存的出口值。

这听起来像你想要的是每个文件module.exports = function something() { /* put your actual code here */ } - 然后你可以要求该功能,并且只在你需要时调用它(如果需要的话,多次调用)。

© www.soinside.com 2019 - 2024. All rights reserved.