- 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