[英]How to export default Object.freeze in dynamic import?
我正在嘗試在動態導入的模塊中導出凍結的對象,但失敗了。
我的主要模塊是:
import ('./hello.mjs').then(function (o) {
o.hello();
});
我導入的模塊 hello.mjs 具有以下代碼:
function hello () {
console.log('Hello');
}
export default Object.freeze({ hello });
程序失敗並在控制台中顯示此錯誤:
TypeError: o.hello is not a function at main.mjs:2
但是,如果我使用簡單的導出,如下所示:
function hello () {
console.log('Hello');
}
export { hello };
...然后它起作用了。 導出默認凍結對象適用於非動態模塊導入。 為什么動態模塊導入的行為不同,我該怎么做才能糾正這個問題?
來自動態導入的承諾的履行值是模塊的模塊命名空間對象。 (請參閱規范中的FinishDynamicImport 。)要訪問默認導出,請在其上使用屬性default
,也許通過解構:
import ('./hello.mjs').then(function ({default: o}) {
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^^^^^^^^^^
o.hello();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.