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