我是NodeJS的新手,我正在运行一个微服务,我想在没有浏览器的情况下打开网页,以每20秒发出一次客户端api请求。我正在尝试使用包openurl
const openPage = require("openurl");
function openUpPage(url){
openPage.open(url);
}
setInterval(openUpPage("myURl"), 20000);
但是,在调用setInterval(...)
时,我被返回“ TypeError:“ callback”参数必须是一个函数“。
有什么想法可以使用setInterval完成吗?
答案 0 :(得分:2)
您需要将回调传递给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
结合使用,无论实现如何,都是毫无意义的。