如何理解Javascript Redux Middleware中的这种语法

时间:2016-10-29 23:24:24

标签: javascript reactjs ecmascript-6 redux

我正在阅读这篇文章,以了解此链接中的redux中间件:http://redux.js.org/docs/advanced/Middleware.html

下面的代码是一个日志记录中间件的示例。

const logger = store => next => action => {
  console.log('dispatching', action)
  let result = next(action)
  console.log('next state', store.getState())
  return result
}

我在下面的部分内容并不了解:

const logger = store => next => action =>

这种语法是什么意思?是否存储记录器功能的操作参数?比较下面的代码有什么不同:

const logger = (store, next, action) => {}

1 个答案:

答案 0 :(得分:3)

这是一种讨好的形式。一种非常简洁的形式。如果我们将语法从箭头函数更改为经典函数,它将来自这个(公认的令人困惑的)语法:

const logger = store => next => action => { ... }

...希望语法不那么令人困惑:

const logger = function (store) {
    return function (next) {
        return function (action) {
            // ...
        }
    }
}

这有助于澄清一点吗?