gpt4 book ai didi

javascript - setInterval() 函数在控制台上运行,但在一次 api 命中后,数据在浏览器上没有更新

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:13 26 4
gpt4 key购买 nike

我使用远程 api 来构建自己的 nodejs api。我希望客户使用我的 Node API 而不是远程 API,以防止远程 API 上的负载过重。

远程 api 的板球得分每 30 秒更新一次,因此,我想在 30 秒内刷新远程 api,并更新我自己的 Node api 上的数据,而无需点击。

所以我在远程api上使用了setInterval()函数。我在下面提到了一段代码。

const express = require("express");
const app = express();
const request = require("request");
const url = "http://cricscore-api.appspot.com/csa";

app.get("/getTeam/:id", (req, res) => {
res.setHeader("content-type", "text/json");
setInterval(function() {
const id = req.params.id;
const purl = url + "?id=" + id;
request(purl, function(error, response, body) {
console.log("error:", error);
console.log("statusCode:", response && response.statusCode);
console.log(body);
res.end(body);
console.log(res);
});
}, 30000);
});

来自远程 API 的更新数据只需单击一下即可正确反射(reflect)在控制台上。但是当我检查浏览器时它没有更新。

请帮助解决该问题。

最佳答案

我不确定,但似乎当您的请求完成时,分配给路由处理程序回调函数的所有内存都会被销毁,导致 setInterval 被删除。

最好的方法是编写一个 cron 作业或计划任务,它将在特定时间间隔或服务器的特定时间(无论您喜欢哪一个)后访问您自己的 api url 之一

关于javascript - setInterval() 函数在控制台上运行,但在一次 api 命中后,数据在浏览器上没有更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49980791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com