javascript — setTimeout не дает ожидаемый результат

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

JS

var updateBoard = function() {
$.ajax({
type: "POST",
url: "engine/main.php",
data: {codes: 2},
success: function(response) {
console.log(response);
}
});
setTimeout(updateBoard, 1000);
};

PHP

if(isset($_POST['codes'])) {
echo "test";
}

1

Решение

Вы можете попробовать следующий подход:

var updateBoard = function() {
$.ajax({
type: "POST",
url: "engine/main.php",
data: {codes: 2},
success: function(response) {
console.log(response);
setTimeout(updateBoard, 1000); //calling the function after 1 sec after we get the response
}
});

};

updateBoard(); //calling it right away
1

Другие решения

Как сказал @Smiranin, просто позвоните SetTimeout вне функции:

var updateBoard = function(){
$.ajax({
type: "POST",
url: "engine/main.php",
data: {codes: 2},
success: function(response) {
console.log(response)
}
})
};
setTimeout(updateBoard, 1000);

Или просто использовать setInterval вместо SetTimeout

setInterval(updateBoard, 1000);
0

Вы можете попробовать setInterval (), если хотите запускать это каждые секунды.

 var updateBoard = function() {
$.ajax({
type: "POST",
url: "engine/main.php",
data: {codes: 2},
success: function(response) {
console.log(response);
}
});

};
setInterval(updateBoard, 1000);
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
0
По вопросам рекламы [email protected]