通常我需要这样的文件:
async = require('async')
但我想这样打电话:
tools.js:
async = require('async')
exports.async = async
other.js
tools.async.parallel([......
这会导致性能问题吗?
答案 0 :(得分:1)
传递异步模块的单个实例应该没有性能问题。 tools.async.parallel([...])
的运行速度比本地分配的async.parallel([...])
略慢,但这种差异可能并不重要。
另一方面,async = require('async')
缓存了第一个加载的模块,因此再次使用require('async')
几乎没有问题。
将代码分解为模块时的一个常见设计目标是使大多数模块成为可重用的组件。这意味着他们使用自己的require()
语句为他们所依赖的其他模块加载他们需要的东西。现在,每个模块都不一定如此,但通常应该考虑设计尽可能多的可恢复代码,以便在不重新设计的情况下重用其他项目中的代码。为此,您通常希望模块在任何相关模块中只需require()
,因为这样可以简化维护和使用。