简短情况报告:
我有两个脚本,可以对交换进行大量的API调用。 一些调用(主要是余额检查)在两个脚本上都是相同的。
为限制API调用,我将所有这些重复调用放在第三个脚本中,该脚本将该数据放入文件中。
脚本1和2都从该文件中读取,并且一切正常。
然而, 为了进一步减少文件写入的开销并每3秒读取一次,我试验了"要求"
脚本1现在需要脚本3,并且平衡数组以这种方式传递。
我没想到的是,我不再需要单独运行脚本3了。 在启动脚本1时,脚本3显然在后台运行(并将console.log消息传递给脚本1)
现在回答这个问题: 如果我在脚本2中添加相同的require,脚本3是否会有效地运行两次?那会破坏第三个剧本的整个目的......
要明确: 脚本3只是一个函数,在间隔中运行,根本没有来自脚本1和2的任何输入。 balance数组是唯一的导出。
答案 0 :(得分:0)
第一次require
文件时,它会同步评估 - 如果文件成功完成(不会抛出),则会缓存其module.exports
值。
此时您require
该文件,您将获得缓存的导出值。
听起来你想要的是拥有每个文件module.exports = function something() { /* put your actual code here */ }
- 然后你可以要求该功能,并且只在你需要时调用它(如果你需要的话,多次调用它)。