javascript簡單易懂-------回調函數與回調地獄

回調函數是在函數A內傳函數B作爲參數,並且調用函數B,函數B被稱爲回調函數

看一段代碼:

let af = function(a,b){
      a(b)
    }
    af(function(b){
      console.log("我是回調函數"+'----'+b)
    },"我是參數b")

很明顯其中的匿名函數就是回調函數,也可以將匿名函數封裝

let af = function(a,b){
      a(b)
    }
    let bf = function(b){
      console.log("我是回調函數"+'----'+b)
    }
    af(bf,"我是參數b")

那麼何爲回調地獄呢?

回調地獄其實就是回調函數的多重嵌套,函數A運用了回調函數,函數A下面的函數B又運用了回調函數,依次類推

例子:

let af = function(a){
        console.log(Math.random())
        a()
    }
    af(function(){
      af(function(){
            console.log("end")
      })
    })

打印結果爲:

0.09151653186594122
0.7165510992420432
end

這是2層的回調地獄,看起來也沒什麼複雜,那我們加多三層看看

let af = function(a){
        console.log(Math.random())
        a()
    }
    af(function(){
      af(function(){
        af(function(){
          af(function(){
            af(function(){
            console.log("end")
            })
          })
        })
      })
    })

這看起來是不是複雜了一些,假如af函數有多個參數的情況下,那就更復雜了,維護起來很麻煩

至於解決方法,可參考其他文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章