compose
实际上是一个函数式编程中的写法,表示从右向左组合多个函数。为了方便,被放到了redux
里面来。
当我们需要将多个storeEnhancers
依次执行的时候,就需要用到它。
下面,我们来看一下它的用法:
compose(...funcs)
funcs
表示 需要合成的多个函数。预计每个函数都接收一个参数。它的返回值将作为一个参数提供给它左边的函数,以此类推。最右边的参数可以接受多个参数,因为它将为由此产生的函数接收arguments
。
例如:compose(funcA,funcB,funcC,funcD)
可以形象化为
(...args)=>funcA(funcB(funcC(funcD(...args))))
;
compose
的源码也很精简,只有短短几行:
export default function compose(...funcs) {
if (funcs.length ===