javascript - 将 setInterval() 与 XMLHttpRequest 一起使用会导致 null 或 {}
问题描述
我对学习 JavaScript 还很陌生,所以我很可能在这里遗漏了一个明显的部分。我正在尝试定期运行 XMLHttpRequest(当被告知开始时)以将最新数据拉入我的数组中。当我在下面运行此代码时,我得到了一次 console.log,但下次它不会再次执行。
我可以在我的代码中调用两次“makeAPIGet(url)”,但是当我使用 setInterval() 时,它不会执行 teh 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 并设置适当的标题,为了这篇文章的目的,它们被删除了
这将返回:
{我想要的结果}
然后什么都没有。代码没有结束,它只是坐在那里,直到我强制停止执行。
解决方案
推荐阅读
- reactjs - 如何使用 Chrome 开发工具调试 TypeScript 库?
- internet-explorer - polyfill.io 需要哪些 polyfill 才能在 IE 11 中运行 Blazor?
- splunk - Splunk 选择最新条目并按 Id 分组
- graphql - 升级到 graphql-js 15.0.0 会中断工作配置并显示消息:字段“[...]”已存在于模式中
- javascript - 如何使用css根据文本值更改文本颜色?
- javascript - 错误 1109:For 循环中需要表达式
- python - 将混合类型的数据框写入 Python Pandas 文件
- javascript - 如何找到谷歌地图折线交叉点?
- jenkins - 如何根据上游作业状态码跳过下游 jenkins 作业
- amazon-ec2 - 如何在 Amazon EC2 容器中提供 Prometheus 配置