異步編程的回調函數形式和發佈訂閱模式

1. 回調函數形式:

function f1(callback){
    callback();
}
function f2(callback){
    callback();
}
function f3(callback){
    callback();
}

f1(f2(f3));

這種方式優點是思路清晰,以串行的方式進行編程。

缺點是會形成回調地獄,過多的回調使代碼難以理解,難以拆分和維護。

 

2. 發佈訂閱模式

let dep = {
    list:[],
    on:function (fn){
        list.push(fn);
    },
    emit:function (){
        this.list.forEach(event => {
            typeof event === 'function'?event():null;
        })
    }
}

發佈者在一個數組list中存放用於訂閱者異步執行的函數,當一定條件下執行emit,訂閱的異步函數都會執行。

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