Параметр функции стимуляции - PullRequest
0 голосов
/ 07 декабря 2018

Я создал свою функцию, которая будет загружать мой API для изменения темпа пользователя.В моей функции changePace я установил свой темп темпа, и этот параметр будет меняться в зависимости от того, какой темп выбран пользователем.У меня есть 4 шага, устойчивый, напряженный, изнурительный и отдыхающий.Любой из которых может быть моим параметром для функции changePace.

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

trail.js:8 Uncaught ReferenceError: steady is not defined
    at HTMLBodyElement.document.body.onkeyup 

JSФАЙЛ:

document.body.onkeyup = function(e){
    if(e.keyCode == 13){
        document.getElementById("paces").style.color = "white";
        paceDiv = true;
        console.log("Works");
    }
    if(e.keyCode == 49 && paceDiv == true) {
      changePace(steady);
      document.getElementById("paces").style.color = "black";
    }
    if(e.keyCode == 50 && paceDiv == true){
      changePace(strenuous);
      document.getElementById("paces").style.color = "black";
    }
    if(e.keyCode == 51 && paceDiv == true){
      changePace(grueling);
      document.getElementById("paces").style.color = "black";
    }
    if(e.keyCode == 52 && paceDiv == true){
      changePace(resting);
      document.getElementById("paces").style.color = "black";
    }
    if(e.keyCode == 32) {
      changeDay();
      document.getElementById("paces").style.color = "black";
    }
}

function changePace(pace) {
    fetch('/api/changePace',
        {method: "post",
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: '{"pace": "' + pace + '"}'
        })
    .then(function(response) {
        if (response.status !== 200) {
            console.log('Error: ' + response.status + "..." + response.value);
            return;
        }
        response.json().then(function(data) {
            changeDay();
        });
    });
}

1 Ответ

0 голосов
/ 07 декабря 2018

Я полагаю, что вы намеревались steady быть строкой, но вы записали ее как переменную, которую вы никогда не определяли.

Вместо этого попробуйте changePace('steady');.

Или,В качестве альтернативы, вы можете определить переменные где-нибудь, может быть, в верхней части файла.Это рекомендуемый подход, если вы собираетесь использовать строку 'steady' в нескольких местах.

var steady = 'steady';
var strenuous = 'strenuous';
var grueling = 'grueling';
var resting = 'resting';
...