JavaScript模块-动态导入和副作用

米蒂亚

任何人都可以准确地告诉我MDN文档import()(强调我的)以下含义的意思

以下是您可能需要使用动态导入的一些原因:...当导入的模块具有副作用时,除非某些条件成立,否则不希望这些副作用

我看不到动态导入如何影响副作用。引言暗示动态导入可以某种方式减轻或避免副作用,(据我所知)这是不正确的。是的,它们的意思是我们可以有条件地进口,但是进口仍然意味着副作用。

也就是说,如果我这样做:

//module.js
let foo = 'bar';
alert('Unwanted side effect!');
export {foo};

//...

//mainscript.js
import('./module.js').then(obj => { });

...我仍然收到警报。

我是否以某种方式误解了上述内容?

威尔·詹金斯

我也可能会误会,但我认为您可以有条件地导入东西:

//mainscript.js
if(somethingIsTrue){
    import('./module.js').then(obj => { });
}

因此,如果模块中有副作用,则只有在实际使用该模块的情况下,您才能获得这些副作用。在静态情况下,总是会导入模块,并且总是会产生副作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章