Ошибка ESLint в функции регулирования Mout.js - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь использовать функцию регулирования Mout.js в моем приложении.

Вот код:

/**
 * @version 0.1.0 (2012/11/27)
 */
export default function throttle(fn, delay) {
    let context;
    let timeout;
    let result;
    let args;
    let cur;
    let diff;
    let prev = 0;
    function delayed() {
        prev = Date.now();
        timeout = null;
        result = fn.apply(context, args);
    }
    function throttled() {
        context = this;
        args = arguments;
        cur = Date.now();
        diff = delay - (cur - prev);
        if (diff <= 0) {
            clearTimeout(timeout);
            prev = cur;
            result = fn.apply(context, args);
        } else if (!timeout) {
            timeout = setTimeout(delayed, diff);
        }
        return result;
    }
    return throttled;
}

однако ESLint говорит следующее:

ESLint: используйте остальные параметры вместо «аргументов».(предпочитайте остальные параметры)

В строке args = arguments;.Я пытался просмотреть документы на rest-params, но у меня возникли проблемы с выяснением того, что происходит.

1 Ответ

0 голосов
/ 24 октября 2018

Объект arguments не является правильным массивом.Это правило ESLint рекомендует не использовать его.

См. Документы для аргументов, чтобы получить представление о специальной обработке, необходимой для работы с объектом аргументов: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

Как ПатрикСказано в комментариях, решение состоит в том, чтобы использовать параметры отдыха, как это:

function throttled(...rest) {
    context = this;
    args = rest;
    cur = Date.now();
    diff = delay - (cur - prev);
    if (diff <= 0) {
        clearTimeout(timeout);
        prev = cur;
        result = fn.apply(context, args);
    } else if (!timeout) {
        timeout = setTimeout(delayed, diff);
    }
    return result;
}

См. документы для параметров отдыха для получения дополнительной информации: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters

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