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)
posted @ 2022-07-19 08:45  我是小杨  阅读(52)  评论(0)    收藏  举报