我有一个javascript模块,并将其导入到主代码/主代码的开头,并在其中执行forEach,在此主代码中,有一个循环调用该模块的方法:
results.forEach(function(result) {
for(const item of items .......){
exampleModule.metodo(result, item)
}
});
到目前为止,很好的问题是,模块的值正在混合,模块根据结果X的项Y不是动态的,有点“干扰”了一切...
我想到了一种解决方法,不知道这是否是最佳实践,在对象内声明const exampleModule = require('./modules/example.js')并为该对象提供引用,例如项目ID ,因为每个ID都是唯一的:
let objetos = {}
results.forEach(function(result) {
for(const item of items .......){
objetos[item.id] = require('./modules/example.js')
objetos[item.id].metodo(result, item)
}
});
简而言之,我希望每个循环项都创建一个模块实例,而不会受到干扰,如果我在位置0的项目中实例化模块,则模块中的所有内容都只能由该项目0使用,如果它是item 1同样,1 n可以更改位置0使用的模块的值,依此类推,这可能吗?有人可以帮帮我吗?
Node.js缓存导入的模块。因此,将它们循环需要没有副作用。缓存在docs中进行了说明。
是的,将模块导入代码深处并不是最佳实践,因为它被认为不易读。您可以随时执行以下操作:
let objetos = {}
const exampleModule = require('./modules/example.js');
results.forEach(function(result) {
for(const item of items .......){
objetos[item.id] = Object.assign({}, exampleModule);
objetos[item.id].metodo(result, item)
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句