如何在加载模块时调用方法?

时间:2017-01-21 11:42:24

标签: javascript module ecmascript-6

我想编写一个演示模块加载顺序的演示。假设有两个模块 Uno Duo ,我想将它们的名称打印到控制台,因为它们已加载。我怎样才能做到这一点?我在谈论以下伪代码。

Uno.js

import Duo from "./duo.js";
default export {
  loaded: () => { console.log("Uno loaded"); }
}

Duo.js

default export {
  loaded: () => { console.log("Duo loaded"); }
}

我尝试了几个疯狂的镜头,例如加载 init 启动等,但没有得到任何打印输出。然后,我对它进行了一段时间的研究,但没有看到任何相关的例子,除了例如Vue框架,其中似乎构建了事件。添加术语构造会在模块和原型之间产生一波比较。

通常,当没有大量关于如何做的例子时,它意味着它无法实现。但是,由于我没有发现任何与其可行相矛盾的陈述,我仍然有点希望。

我已经看过方法chaining the requireand subsequent statements,但在我的情况下,我特别希望模块本身具有自包含的冗长。

1 个答案:

答案 0 :(得分:0)

您当前正在导出一个功能,可以从模块中执行您想要的操作。这意味着有人需要调用该函数,不,没有自动钩子在加载模块时调用具有特定名称的导出项目。

相反,只需在模块体中自行调用该函数即可。在评估模块时,您可以自由地执行所需的任何副作用:

// uno.js
import "./duo.js";
console.log("Uno loaded");

// duo.js
console.log("Duo loaded");