javascript - setInterval 使用 node.js 抛出的 TypeError

标签 javascript node.js callback setinterval

我是 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/

相关文章:

javascript - 在javascript中取消转义&符号

javascript - 合并数组中的对象并保留相同属性的最高值

node.js - webpack 中带有 React-router 的多个入口点

javascript - Node 应用程序,完全有效的 JSON, "d"怎么没有定义?

javascript - JavaScript 回调函数的参数

javascript - 结合侧边栏菜单和轮播

JavaScript localStorage NaN 错误

javascript - 无法获取/使用 gulp-connect-php

node.js - NodeJS V8 将附加参数传递给回调

javascript - ajax 调用如何将数据返回给变量?