Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何多次调用函数?(在setInterval()中)_Javascript_Json_Http_Web - Fatal编程技术网

Javascript 如何多次调用函数?(在setInterval()中)

Javascript 如何多次调用函数?(在setInterval()中),javascript,json,http,web,Javascript,Json,Http,Web,此代码每3秒钟更新一次聊天记录。它正确地提醒myArr(我只是出于调试目的提醒它),但只有一次–当页面加载时(但我每3秒需要一次),尽管调用了setInterval 我认为问题在于(一定是)第一次请求后,onreadystatechange/readyState没有更新。我真的很努力,但没有成功 请提供帮助问题在于如何将函数传递到setInterval,与XHR调用无关 传递函数时不要使用括号,只需传递名称即可。通过使用括号,可以立即执行函数并传递返回值(本例中未定义) 这个问题已经被问了几十次

此代码每3秒钟更新一次聊天记录。它正确地提醒
myArr
(我只是出于调试目的提醒它),但只有一次–当页面加载时(但我每3秒需要一次),尽管调用了setInterval

我认为问题在于(一定是)第一次请求后,
onreadystatechange
/
readyState
没有更新。我真的很努力,但没有成功


请提供帮助

问题在于如何将函数传递到
setInterval
,与XHR调用无关

传递函数时不要使用括号,只需传递名称即可。通过使用括号,可以立即执行函数并传递返回值(本例中未定义)


这个问题已经被问了几十次了。请参见仅举一个例子。我想知道为什么人们很难理解这一点。文档中说你传递了一个函数。真的很难区分函数和函数调用吗?非常感谢!真的很有帮助
function chatUpdate() {
    var xmlhttp = new XMLHttpRequest();
    var url = document.URL + '&action=update';

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                var myArr = JSON.parse(xmlhttp.responseText);
                alert(myArr);
        }
    }

    xmlhttp.open("GET", url, true);
    xmlhttp.send();
}

setInterval(chatUpdate(), 1000);
setInterval(chatUpdate, 1000);
//                    ^ no ()