各位观众老爷,大家好!我是老码,今天咱们聊聊一个挺有意思,但也容易翻车的东西:JS 模块里的 Top-level await。这玩意儿在 ES2022 里才正式露脸,别看它名字挺唬人,其实就是让 await 可以在模块的最外层直接用,不用非得塞到 async function 里。 这东西听起来挺爽,但用不好,容易把自己埋了。咱们今天就好好唠唠,它怎么改变模块初始化流程,又怎么挖坑等你跳。 一、Top-level await 是个啥? 先来个简单的例子热热身: // moduleA.js import { someFunction } from ‘./moduleB.js’; console.log(“moduleA loading…”); const data = await someFunction(); console.log(“moduleA loaded with data:”, data); export const result = data + ” from moduleA”; // moduleB.js export async function someFunc …
继续阅读“讨论 `JS` 模块的 `Top-level await` (ES2022) 如何改变模块初始化流程和潜在的死锁问题。”