экземпляры setInterval () удваиваются, как их запустить?
var odo = document.querySelector(".odometer");
var ve = document.getElementById("viewers");
var input = document.querySelector("#inputUserName");
function handleEnter(e) {
var keycode = e.keyCode ? e.keyCode : e.which;
if (keycode == "13") {
console.log("You pressed enter!");
var identifiant = input.value;
main(identifiant);
}
}
function main(identifiant) {
streamViewers(identifiant);
function streamViewers(v) {
var refreshV = setInterval(() => { // var refreshV is for stop the interval on bad response
fetch(`https://api.twitch.tv/helix/streams?user_id=${v}`, {
headers: {
"client-id": "0ikjx4yg4ifvnm010hu1p5w8c4pjgm"
}
})
.then(response => response.json())
.then(data => {
// here is my fetch function
console.log("Running setInterval() with v = " + v)
});
}, 2000);
console.log("xx");
}
}
Шаг 1
- Введите значение в поле ввода: «строка 1»
- Нажмите клавишу ввода
OUTPUT
You pressed enter!
xx
Running setInterval() with v = string 1
Running setInterval() with v = string 1
...
Шаг 2
- Введите новое значение в поле ввода: «строка 2»
- Нажмите клавишу ввода
OUTPUT
...
You pressed enter!
xx
Running setInterval() with v = string 1
Running setInterval() with v = string 2
Running setInterval() with v = string 1
Running setInterval() with v = string 2
...
2 экземпляра моей функции main () запущены, я хочу 1 экземпляр.
Как запустить один раз функцию?