ES6 / 7中的循环依赖

时间:2016-11-03 06:15:05

标签: javascript ecmascript-6 babeljs circular-dependency ecmascript-7

我很惊讶地发现,在Babel中,我可以互相拥有两个模块import而没有任何问题。我发现有一些地方将此称为Babel中已知和预期的行为。我知道这被广泛认为是很多(我猜的是大多数)人的反模式,但请忽略这个问题:

是否有人知道这是否(或将来)是ES6 / 7中的正确行为?

我能找到的最接近官方答案(和技术解释)的是this comment on 2ality.com

2 个答案:

答案 0 :(得分:7)

通常认为这是不好的做法。但ES模块旨在支持循环依赖。 ES 2017规范15.2.1.16.3ResolveExport Concrete Method中有一些信息。但是,我觉得这很难读(老实说,我受了很多苦)。您在2ality.com上提到的帖子可能更易阅读。

答案 1 :(得分:1)

我使用nodeJS,所以它有点相同。据我所知,"需要周期"即使通常最好避免它们,也不是非法的。如果有一个循环,nodeJS至少会处理它:它不需要第二次。