核心概念
非同步(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 arrivesawait 在網路請求處暫停,拿到結果後再繼續。
「非同步」不等於「更快」——它的意思是不傻等。那件慢事該花多久還是花多久。
又稱
另見