手写事件列队
作者:互联网
事件列队遵循先进先出的原则 这种方法只能说是模拟。
function Ld(){
let index = arguments.length; //获取参数列表长度
const arr = []; //接收参数
for(var i = 0 ;i<arguments.length;i++){
if( typeof arguments[i] === 'function'){
arr.push(arguments[i]);
}
}
this.err =function(fn){
if(typeof fn ==='function'){
fn();
}else{
console.log('程序执行错误');
}
}
//在循环中执行回调函数
try{
while(arr.length>0){
let fun = arr.shift();
fun()
// return fun; //返回会直接终结循环的运行
}
this.then = function(fn){
if(typeof fn ==='function'){
fn()
}
return this;
}
return this;
}catch{
this.err();
return this;
}finally{
this.fina = function(fn){
if(typeof fn ==='function'){
fn();
}
return this;
}
return this;
}
}
Ld(()=>console.log('输出1'),()=>console.log('输出2'))
.then(()=>console.log('执行成功'))
.then(()=>console.log('链式调用'))
.fina(()=>console.log('最后都会执行'));
效果
标签:function,arr,return,log,事件,列队,console,手写,fn 来源: https://blog.csdn.net/qq_52440306/article/details/119086983