Node.js"要求" - 避免重复运行

时间:2017-12-31 22:38:11

标签: javascript node.js require

简短情况报告:

我有两个脚本,可以对交换进行大量的API调用。 一些调用(主要是余额检查)在两个脚本上都是相同的。

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

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

然而, 为了进一步减少文件写入的开销并每3秒读取一次,我试验了"要求"

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

此时您require该文件,您将获得缓存的导出值。

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