2016-03-26 5 views
3

Может кто-нибудь объяснить, что код делает hereобъяснение эс 6 кода

return() => next => action => { 
    const callAPI = action[CALL_API]; 

    if (typeof callAPI === 'undefined') { 
    return next(action); 
    } 

    let { endpoint } = callAPI; 
    const { types, bailout } = callAPI; 

Первоначально он возвращает функцию, но я не понимаю, почему есть еще две толстые стрелки после первой.

ответ

2

Если функция стрелки имеет только один параметр, то параметр вокруг этого является необязательным. Вам просто нужно иметь достаточную скобку, чтобы лучше понять их.

return() => (next) => (action) => { 

она возвращает функцию, которая при вызове возвращает другую функцию, которая принимает один параметр, next. Теперь, когда эта функция вызывается, она возвращает другую функцию, которая принимает другой параметр action.

1

Этот код можно переписать, как показано ниже,

return function() { 
    return function(next) { 
     return function(action) { 

Кажется, что внешняя функция возвращает функцию с параметром next и возвращает еще одну функцию с параметром action. Этот код в указанной вами ссылке не был уменьшен, но кажется, что он запутан.