Dsh*_*hiz 3 javascript import node.js async-await es6-modules
我将此作为我的函数构造函数:
测试.js
const myConstructor = function(){
this.hi = 'hi'
console.log(this.hi)
}
export default myConstructor
Run Code Online (Sandbox Code Playgroud)
我正在await import()
test2.js 中尝试:
测试2.js
const test = await import('./test.js')
new test()
Run Code Online (Sandbox Code Playgroud)
这失败了TypeError: test is not a constructor
。
但是,如果我正常导入它,它就可以正常工作:
测试2.js
import test from './test.js'
//const test = await import('./test.js')
new test()
Run Code Online (Sandbox Code Playgroud)
^^ 打印hi
到控制台。
这里发生了什么?为什么这两种方法对于构造函数的行为如此不同?对于正常功能来说,这似乎不会发生。
我必须通过直接在构造函数模块内调用构造函数来解决这个问题,但这并不理想。
它返回一个承诺,该承诺满足一个包含 moduleName 的所有导出的对象,其形状与命名空间 import ( ) 相同
import * as name from moduleName
:一个具有 null 原型的对象,并且默认导出可用作名为 default 的键。
如果它的 Promise 仅解析为默认导出,您将无法使用它可能具有的任何命名导出。所以,你需要:
const testNamespace = await import('./test.js')
new testNamespace.default()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1599 次 |
最近记录: |