Я пытаюсь решить очень простую проблему, но не могу понять.У меня есть следующий код:
<button onclick="run()">TEST</button>
<script>
var counter = 0;
function test() {
return $.ajax({
url: "https://127.0.0.1:4432",
success: function(html){
console.log('success! test');
},
error: function() {
if (counter++ < 3) {
console.log("Retrying");
$.ajax(this);
return;
}
console.log('ERROR! test');
}
});
}
function run() {
test()
.then(
function(){console.log('finished ALL OK')},
function() {console.log('finished all ERROR')
;});
}
</script>
Чего я хочу добиться, так это то, что после нажатия на кнопку запрос AJAX будет отправлен на сервер.В случае сбоя AJAX запрос будет повторен.Только после того, как все повторные попытки будут завершены, будет вызван успех или неудача в функции ".then".
В этот момент код ведет себя так, что вызов AJAX повторяется три раза, но "Обработчик .then () "вызывается сразу после первого сбоя.
В консоли браузера это выглядит так:

После всех повторных попыток я хотел бы видеть текст «Закончена вся ОШИБКА» в конце.
Надеюсь, что это имеет смысл, и я буду благодарен за любую помощь.