gpt4 book ai didi

javascript - Chrome 62 JavaScript 模块

转载 作者:行者123 更新时间:2023-12-01 02:39:08 25 4
gpt4 key购买 nike

我像这样导入模块:

<script type="module">
import mod_test from '../classes/mod_test.js';
window.mod_test= mod_test;
</script>

但是 Chrome 有时会说如果我调用函数 window.mod_test.test();

cannot read property 'test' of undefined

在 Jquery 同步请求中调用。

我做错了什么?或者这是 chrome 的一个错误,因为它只是有时发生?

模块看起来像这样

var mod_test = {
a: null,
test: function (b) {
this.a=b;
}
};

export default mod_test;

最佳答案

由于您没有 CORS 问题,我认为问题可能出在模块加载和模块导出函数调用之间的竞争条件中。为了确保您可以尝试以下方法。在模块加载器之前定义应用程序运行器:

<script>
window.runTheApp = function(mod_test) {
mod_test.test();
// ...
}
</script>

然后使用应用程序运行程序调用加载您的模块:

<script type="module">
import mod_test from '../classes/mod_test.js';
window.runTheApp(mod_test);
</script>

此外,dynamic import可能有用。对我来说,它使方法更加清晰:

<script type="module">
import('../classes/mod_test.js')
.then(function(module) {
console.log('module loaded');
window.runTheApp(module.default);
})
</script>

关于javascript - Chrome 62 JavaScript 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47686038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com