lodash 之afert &before

102 阅读1分钟

  • after(n, func)

调用n次,只有最后一次执行

function  after(n,callback) {  
  return function (...args) { 
       if(--n==0){     
       callback.apply(this,args);  
      }  
  }
}
let list = ['one','two'];
let done = after(list.length,function(data){  
  console.log(data)
});
done(list[0]);
done(list[1]);
// =>two

  • before(n, func)

调用n次,最后一次不执行

function before(n, callback) {    let result,count = n;    return function (...args) {        count = count -1;        if (count > 0) result = callback.apply(this, args);        if (count <= 1) result = undefined;        return result    }}let list1 = ['one', 'two','three'];let fn = before(3,function(data){    console.log(data)})fn(list1[0]);fn(list1[1]);fn(list1[2]);
//=> one two