如何解决将 setInterval() 与 XMLHttpRequest 一起使用会导致 null 或 { <anonymous> }
我刚开始学习 JavaScript,所以很可能在这里遗漏了一个明显的部分。我试图让 XMLHttpRequest 定期运行(当被告知开始时)以将最新的数据提取到我的数组中。当我在下面运行这段代码时,我得到了一次 console.log,但下次不会再次执行。
我可以在代码中调用两次“makeAPIGet(url)”,但是当我使用 setInterval() 时,它不会执行 seoncd 时间。关于我缺少什么或在这里做什么的任何建议?谢谢!
编辑:我已经缩小了导致问题的范围;第二次运行该函数时,参数设置为未定义。除了进行全局论证之外,还有其他方法可以保留论证吗?
const promise = require('promise');
const XMLHttpRequest = require('XMLHttpRequest').XMLHttpRequest;
function makeAPIGet(url) {
return new promise(function(resolve,reject) {
let xhr = new XMLHttpRequest;
xhr.addEventListener("readystatechange",function () {
if (this.readyState === this.DONE && this.status === 200) {
let result = JSON.parse(xhr.responseText)
console.log(result);
resolve();
};
});
xhr.open("GET",url);
xhr.setRequestHeader("//");
xhr.setRequestHeader("//");
xhr.send();
});
};
setInterval(makeAPIGet,1000),makeAPIGet('//')
注意:我正在发送一个 url 并设置适当的标题,为了这篇文章的目的,它们被删除
返回:
{我想要的结果}
然后什么都没有。代码没有结束,它只是坐在那里,直到我强制停止执行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。