NodeJS 中 ECMAScript module loader 为什么说他是异步的?

2023-09-10 11:20:55 +08:00
 wqq096737ink
NodeJS 官网文档有这样一段

There is the ECMAScript module loader:
It is asynchronous.
It is responsible for handling import statements and import() expressions.

问:为什么说 ES Module 的加载是异步的?
512 次点击
所在节点    问与答
3 条回复
fw1314
2023-09-10 17:43:53 +08:00
import 是在你需要的时候才会导入模块,包括 import()。

顺便提一句:因为 require 是同步的,开始时会直接加载到本模块
wqq096737ink
2023-09-10 19:32:14 +08:00
@fw1314 第一句话不是很理解。
动态 import() 返回 Promise , 说他是异步加载没什么问题/
静态 import 不是同步加载执行被导入的模块吗?
为啥要说 ESM loader 是异步的?
fw1314
2023-09-10 23:48:11 +08:00
@wqq096737ink 对,你是对的,import 是编译期直接静态导入,require 是运行时导入

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/972424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX