js compose函数

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
const compose = (...funcs) => {
if (funcs.length === 0) {
return (...arg) => {
return arg;
};
}
return funcs.reduce((pre, cur) => {
return (...args) => {
const a = cur(pre(...args));
return a;
};
});
};

通过reduce来聚合多个函数,比如在redux middleware里面聚合多个middleware,要注意

1
cur(pre(...args));

这里决定了聚合的顺序。