В коде под строкой
setTimeout(Comet_IrsaliyeBelgeDurum(sGuid, belgeOid), 10000)
не заставляет функцию кометы ждать 10 секунд. Функция работает непрерывно.
Параметр setTimeout, кажется, не имеет никакого эффекта.
Как заставить код ждать 10 секунд?
function Comet_IrsaliyeBelgeDurum(sGuid, belgeOid) {
var params = {
sGuid: sGuid,
belgeOid: belgeOid
}
$.ajax({
type: "post",
dataType: "json",
data: params,
url: '/BetonHareketler/H_BetonIrsaliyeBelgeDurum',
success: function (data) {
if (data.isSuccess) {
if (data.entity == 2 || data.entity == 4) {
toastr.success(data.SuccessfullMessage, 'İşlemi Başarılı');
}
else {
toastr.info(data.SuccessfullMessage, 'İşlemi Başarılı');
setTimeout(Comet_IrsaliyeBelgeDurum(sGuid, belgeOid), 10000);
}
}
else {
toastr.error(data.SuccessfullMessage, 'İşlemi Başarısız');
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert("Bağlantı Hatası. Sayfaya Yenileyin");
window.location.replace(window.location.href);
}
});
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


setTimeout принимает функцию, которую вызывает по истечении задержки.
setTimeout(Comet_IrsaliyeBelgeDurum(sGuid, belgeOid), 10000);
^---------------------------------------^
this got evaluated
Ваш код вызывает Comet_IrsaliyeBelgeDurum и использует возвращаемое значение, каким бы оно ни было, в качестве «функции» для setTimeout.
Что вам нужно сделать, так это просто обернуть это в другую функцию, например:
setTimeout(function(){
Comet_IrsaliyeBelgeDurum(sGuid, belgeOid)
}, 10000);
Проблема в том, как вы вызываете setTimeout:
setTimeout(Comet_IrsaliyeBelgeDurum(sGuid, belgeOid), 10000);
Javascript — это язык передачи по значению. Это означает, что все параметры, которые вы передаете, оцениваются до того, как они будут переданы функции.
Это означает, что вы передаете значения Comet_IrsaliyeBelgeDurum(sGuid, belgeOid) и 10000 в setTimeout. Затем это вызывает функцию Comet_IrsaliyeBelgeDurum.
Что вы хотите сделать, так это передать функцию (не результат функции) в setTimeout. Смотрите ответ Джозефа для примера.
Большое спасибо за ваше предложение. теперь я знаю о проблеме