Javascript setInterval在指定时间后不调用函数
在一个JS函数中,我调用另一个,。。我想每30秒打一次电话Javascript setInterval在指定时间后不调用函数,javascript,setinterval,Javascript,Setinterval,在一个JS函数中,我调用另一个,。。我想每30秒打一次电话 function showPopup() { $.get("/Feedback.aspx", function (data) { if (post_HasError(data)) return; initPopup("popup-common", "feedback", data); }); setInterval(AddFormToSession(3),
function showPopup() {
$.get("/Feedback.aspx", function (data) {
if (post_HasError(data))
return;
initPopup("popup-common", "feedback", data);
});
setInterval(AddFormToSession(3), 30000);
}
function AddFormToSession(form) {
alert(1);
var url1 = form == 3 ? "Feedback.aspx/AddFormToSession" : "Request.aspx/AddFormToSession";
$.ajax
({
type: "POST",
async: true,
url: url1,
data: "{'funcParam':'" + $('#aspnetForm').serialize() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg)
{
console.log(msg.d);
}
});
}
仅在第一次调用时调用setInterval接受函数名,即AddFormToSession。您提供的是函数调用的返回值。您没有在setInterval的第一个参数中调用函数。调用函数返回该函数的值,而不是对该函数的引用。在您的情况下,它返回undefined 您只需传递函数的引用。您可以使用匿名函数,然后从那里调用
setInterval(function () {
AddFormToSession(3);
}, 30000);
从评论中:
传递的是函数对象,而不是引用
作为第一个参数的函数调用如果返回函数就可以了。
setIntervalAddFormToSession3,…-立即调用回调函数并将其用作参数;是的,这是一个重复的、位于函数外部的位置。Nit:传递的是函数对象,而不是referenceWell,第一个参数的值设置为对函数对象的引用。如果函数调用返回一个函数,作为第一个参数是可以的:setTimeoutfunction{return function{…},0.:-