ES6 模块动态Import

719 阅读1分钟

需要动态import模块可以使用import()方法
函数签名:
let recive = import('path');
参数:
模块的路径               path
用于接受返回值       recive
返回值:
一个解决的Promise,解决值是导入的模块

eg.

let dynamicImport = import('./module.js')
console.log(dynamicImport);
//Promise {<pending>}  
//[[PromiseState]]: "fulfilled"

咱犯病:

Q:为什么是个pending状态却已落定?
A:同步打印结果,此时期约的解决函数尚未执行,但终将会被解决。

Q:如何确实看见被解决?
A:

let dynamicImport = import('./module.js')
setTimeout(console.log, 1000, dynamicImport)
//Promise {<fulfilled>: Module}

通过定时器异步输出即可,且时间不能太短,期约执行解决函数也要时间...

治病:
同步不能输出异步理想的结果,因为异步代码永远在同步代码执行之后,牢记!