核心概念

异步(async)

/ AY-sink /

异步(async)是一种做法:先去启动某件慢吞吞的事——比如从网络取数据、读一个大文件——然后不傻等,继续去做别的活。等那件慢事终于办完了,代码再绕回来处理它的结果。

可以想象点咖啡:你不会僵在柜台前一直等到做好。你拿个取餐器,先找位子坐下,等饮料做好取餐器就会响。这个取餐器就是「承诺(promise)」——一个还没到货的答案的占位符。而「等待(await)」,不过是你主动选择:先坐下来等这一声响,再去做下一件事。

这就是为什么初学者很早就会遇到 promise 和 await:一次网络请求可能要花半秒,而半秒对计算机来说是漫长的永恒。异步让程序保持灵活、随叫随应,而不是干等时整个卡死。

const data = await fetch('/api/user');  // pause here, but only here
console.log(data);                      // runs after it arrives

await 在网络请求处暂停,拿到结果后再继续。

「异步」不等于「更快」——它的意思是不傻等。那件慢事该花多久还是花多久。

又称
asynchronouspromiseasync/awaitnon-blockingcallback