What does the lodash flow function do?

前端 未结 2 1046
醉话见心
醉话见心 2021-01-17 10:34

I am reading some code that uses _.flow() from lodash and the explanation in the docs just isn\'t making sense to me.

The doc says

Creates a

2条回答
  •  隐瞒了意图╮
    2021-01-17 11:14

    Here is the relevant part of the source code for this function:

    return function(...args) {
        let index = 0
        let result = length ? funcs[index].apply(this, args) : args[0]
        while (++index < length) {
            result = funcs[index].call(this, result)
        }
        return result
    }
    

    So it first applies the first function to the input arguments; then calls the rest of the functions with each taking up the result of the previous stage.

    I can see the following benefits from doing it this way: - All the applied functions will use the this argument of the caller in case that is desired. - On definition, it just returns a function. This allows for lazy evaluation. The flow function can be passed around. The actual calculation will take place only when it is applied to the arguments.

提交回复
热议问题