2025-02-19-Callback Hell(回呼地獄)
2025-02-19-Callback Hell(回呼地獄)
你現在理解「什麼是 callback」的概念已經沒問題,接下來我們來說「無限 callback」這個說法,其實它通常不是指「真的無限次數」,而是指:
🔁 過度巢狀、層層相依的 callback 函式結構
這種情況被稱為:
Callback Hell(回呼地獄)
中文常說「巢狀過深的 callback」,程式碼會一層包一層,很難閱讀與維護。
📦 範例:層層相依的 callback(模擬查天氣 → 查空氣 → 查穿搭建議)
1 | function getWeather(callback) { |
😵 問題在哪?
這樣的寫法問題是:
- 每加一個功能就要多縮排一層(維護困難)
- 越來越亂,看不出邏輯結構
- 錯誤處理變得非常複雜(哪裡出錯都不好找)
✅ 解法:用 Promise
或 async/await
改寫
這就是為什麼現代 JS 推薦用 Promise
或 async/await
,你只要寫成這樣:
1 | async function main() { |
是不是整齊超多?😊
總結:你問的「無限 callback」是什麼?
➡️ 其實是指 callback 一層套一層、層層相依、難以閱讀的地獄式寫法,俗稱 callback hell,不是「真的無限次數」。