compose和pips函数
函数式编程后执行的一些问题
值得传递写起来不方便
我们如果要连续的执行一系列函数,并且传递计算某个值,会写起来很难受
连续调用写起来很麻烦
连续调用一系列函数,写起来很麻烦
Compose
Compose函数可以理解为为了方便我们连续执行方法,把自己调用传值得过程封装了起来我们只需要给compose函数我们要执行哪些方法,他会自动得执行
代码示例
function addOne(num){
return num+=1;
}
function addTwo(num){
return num+=2;
}
function addThree(num){
return num+=3;
}
function compose(a,b){
//arguments 获取所有参数
const args=[].slice.apply(arguments);
return function(){
/* for(var i=args.length-1;i>=0;i--){
_result=args[i](_result)
}
return _result; */
//原生方法
return args.reduceRight((res,cb)=>cb(res))
}
}
//调用
compose(addOne,addTwo,addThree)(10)
链式调用
我们也可以用promise来组织成一个链式调用,但是注意。这和面向对象的链式调用有区别
Promise.resolve(10).then(addOne).then(addTwo).then(addThree)

浙公网安备 33010602011771号