ES6 Callback функция - PullRequest
       6

ES6 Callback функция

0 голосов
/ 13 мая 2019

Я просматриваю чужой код и продолжаю видеть функции, написанные в этом стиле:

    getConsents: (_, callback = () => {}) => {
        const data = {};
        callback(data, true);
    }

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

Я пытался использовать babel, чтобы понять, имеет ли он смысл в es5, но мне не повезло:

getConsents: (function (_) {
  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
  var data = {};
  callback(data, true);
});

Если бы кто-то мог объяснить это соглашение или подробно описать, что он делает, это было бы очень ценно.

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Начиная с ES6, вы можете указать значения по умолчанию для параметров функции. Например:

function greet(name = 'John Doe') {
  console.log('hello', name);
}

greet('Alan Alda');
greet();

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

0 голосов
/ 13 мая 2019

В ES5 это может выглядеть примерно так:

getConsents: (function(_, callback = function() {}) {
    const data = {};
    callback(data, true);
})

Это просто установка значения по умолчанию для обратного вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...