当 await 冲出函数牢笼:Top-Level Await 的奇妙冒险 各位看官,今天要聊点新鲜玩意儿,保证你听了之后,要么醍醐灌顶,要么觉得这帮程序员又在搞什么幺蛾子。这玩意儿叫 Top-Level Await,简单来说,就是让 await 这个小家伙,从函数里解放出来,直接在模块的顶层“上班”。 你可能会挠头:await 不是一直都得跟 async 形影不离吗?离开函数,它还能干啥?别急,故事得从头说起。 async/await 的爱恨情仇:一段不得不说的往事 在 JavaScript 的世界里,异步操作就像一只调皮的猴子,上蹿下跳,让人捉摸不透。以前,我们要处理异步操作,得用回调函数,一层套一层,代码像意大利面一样缠绕,看得人头晕眼花。这被戏称为“回调地狱”。 后来,Promise 横空出世,它像一位骑士,承诺异步操作完成后会给你一个结果。虽然比回调好多了,但代码里还是得写 .then()、.catch(),稍微复杂一点,还是不够优雅。 直到 async/await 这对神仙眷侣出现,世界才真正清净了。async 声明一个函数是异步的,await 则在函数内部暂停执行,等待 P …