tl; dr: моя функция не запускается, пока setInterval () запускает другую функцию каждые 3 секунды.
Я делаю текстовую игру по садоводству, которая запускает "plant ()", когда я набираю plant. У меня также есть setInterval (updatePlots, 3000) собирается.
обе эти функции работают нормально самостоятельно, но когда я пытаюсь запустить функцию plant () во время выполнения setInterval (), возникает ошибка Uncaught TypeError: plant is not a function
(я знаю, что это setInterval (), потому что я тестировал посадку без ее запуска, и она работала нормально.)
что я пытался (не работал):
if (command == "plant") {
clearInterval(timer);
plant(a, b);
var timer = setInterval(updatePlots, 3000);
}
Я не совсем уверен, какой код мне нужно показать, так как это кажется более фундаментальной проблемой, чем однострочная ошибка ... но вот она.
function updatePlots() {
fullplots = [];
for (i = 0; i < plots.length; i++) {
if (plots[i].length) {
fullplots.push(i);
}
}
for (i = 0; i < fullplots.length; i++) {
plant = plots[fullplots[i]][0];
status = plots[fullplots[i]][1];
growth = plots[fullplots[i]][2];
if (growth < 100) {
plots[fullplots[i]][2]++;
}
}
if (document.getElementById('plots').style.display == 'block') {
getPlots();
}
}
...
function processTwo(command, a) {
if (command == 'plant') {
clearInterval(timer);
console.log('about to plant 1'+a);
plant(1, a);
var timer = setInterval(updatePlots, 3000);
}
else { createError() }
}
обновление: решено!