以下代碼就是一個回調函數的例子:
回調函數有一個致命的弱點,就是容易寫出回調地獄(Callback hell)。假設多個請求存在依賴性,可能會有如下代碼:
以上代碼看起來不利于閱讀和維護,當然,也可以把函數分開來寫:
以上的代碼雖然看上去利于閱讀了,但是還是沒有解決根本問題。回調地獄的根本問題就是:
嵌套函數存在耦合性,一旦有所改動,就會牽一發而動全身
嵌套函數一多,就很難處理錯誤
當然,回調函數還存在著別的幾個缺點,比如不能使用 try catch 捕獲錯誤,不能直接 return。