【问题标题】:explanation of es 6 code [duplicate]es 6代码的解释[重复]
【发布时间】:2016-07-13 22:45:49
【问题描述】:
谁能解释一下代码在做什么here
return () => next => action => {
const callAPI = action[CALL_API];
if (typeof callAPI === 'undefined') {
return next(action);
}
let { endpoint } = callAPI;
const { types, bailout } = callAPI;
它最初返回一个函数,但我不明白为什么在第一个之后还有两个粗箭头。
【问题讨论】:
标签:
javascript
ecmascript-6
arrow-functions
【解决方案1】:
如果箭头函数只有一个参数,那么它周围的参数是可选的。你只需要有足够的括号来更好地理解它们。
return () => (next) => (action) => {
它返回一个函数,该函数在被调用时返回另一个接受一个参数next 的函数。现在,当调用该函数时,它会返回另一个函数,该函数接受另一个参数action。
【解决方案2】:
该代码可以如下重写,
return function() {
return function(next) {
return function(action) {
似乎外部函数返回一个带有参数next 的函数,并返回另一个带有参数action 的函数。您提供的链接中的代码没有缩小,但这似乎被混淆了。