我是 NodeJS 的新手,我有一个正在运行的微服务,我想在没有浏览器的情况下打开一个网页,每 20 秒发出一次客户端 api 请求。我正在尝试使用包 openurl
const openPage = require("openurl");
function openUpPage(url){
openPage.open(url);
}
setInterval(openUpPage("myURl"), 20000);
但是在调用 setInterval(...)
时返回“TypeError: “callback” argument must be a function”。
知道如何使用 setInterval 完成此操作吗?
最佳答案
您需要将回调传递给 setInterval
,而不是使用匿名箭头函数作为示例立即调用您的函数。
setInterval(() => openUpPage("myURl"), 20000);
虽然箭头函数不是必须的。
setInterval(function() { openUpPage("myURl") }, 20000);
在测试时我发现 "TypeError: "callback"argument must be a function"
由 setInverval
抛出的错误与 node.js 有关。问题中的代码片段在 codepen 中运行时没有任何错误(使用 Chrome)。
这是由于纯javascript缺乏底层支持,无法实现此类定时器相关功能所致。因此,浏览器和 node.js 不一定共享文档中看到的相同实现。
即使如问题片段中所示立即调用函数与 setInterval
结合使用也毫无意义,无论实现如何。
关于javascript - setInterval 使用 node.js 抛出的 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51067284/