Что это за функция со стрелкой ES6? - PullRequest
0 голосов
/ 14 мая 2018

Я создаю приложение, используя React, Redux.

Среди них я делаю промежуточное ПО Redux,

Есть часть, которую я не понимаю.

Вот код:

const loggerMiddleware = store => next => action => {

    console.log('currentState', store.getState());

    console.log('action', action);

    const result = next(action);

    console.log(', store.getState());
    console.log('\n'); 

    return result;
}

export default loggerMiddleware; 

Что это за функция стрелки => => =>? Не имеет смысла, что функция стрелки продолжается.

Что это значит?

Ответы [ 3 ]

0 голосов
/ 14 мая 2018

Функция стрелки Javascript - это замена ключевого слова «function» из 8 символов.вам не нужно писать return в вашей функции, когда вы используете функцию стрелки.

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

Подробнее об этом см. Хороший пример по этой ссылке https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

0 голосов
/ 14 мая 2018

Это метод (называемый каррированием), который заменяет одну функцию, которая принимает несколько аргументов, несколькими функциями, каждая из которых принимает часть этих аргументов, например:

    const f1 = (x, b) => x + b;
    const f2 = x => b => x + b;
    
    const f1Result = f1(1, 2);
    // we can construct f2's result in multiple steps if we want because it returns a function, this can be helpful.
    let f2Result = f2(1);
    f2Result = f2Result(2);

    console.log('f1Result', f1Result);
    console.log('f2Result', f2Result);

Вы также можете прочитать this для более детального понимания обоснования этого решения, в основном:

Иногда мы хотимсвязать некоторое локальное состояние с магазином и следующим

0 голосов
/ 14 мая 2018

Код ниже:

const loggerMiddleware = store => next => action => { 
    var result = /* .. */
    return result;
}

является эквивалентом:

const loggerMiddleware =  function(store) { 
    return function(next) {
        return function(action) {
            return result;
        }
    }
}
...