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