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,订阅的异步函数都会执行。