У меня проблема с моей функцией интервала. Это моя функция:
let data = {
action: "verify_status",
};
let interval = setInterval( function () {
if ( new Date().getTime() - startTime > 600000 ) {
alert( "Error: Timed out!" );
clearInterval( interval );
}
jQuery.post( ajax_url, data, function () {
} ).success( function () {
clearInterval( interval );
successFunction();
} ).fail( function ( response ) {
if ( response.status === 500 ) {
clearInterval( interval );
}
} );
}, 5000 );
Моя проблема заключается в следующем: интервал запускает запрос AJAX, который теперь выполняется параллельно. Это нормально, если запрос не выполняется с HTTP 400
.
Но если он работает успешно, мой successFunction()
вызывается. К сожалению, интервал продолжается на улице. В результате мой successFunction()
вызывается дважды, а иногда и три раза, хотя я прерываю выполнение с помощью clearInterval()
. У кого-нибудь есть идеи, как я могу сделать это лучше?