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,訂閱的異步函數都會執行。