【问题标题】:can we use node js timer object in angular 4?我们可以在角度 4 中使用节点 js 计时器对象吗?
【发布时间】:2017-12-03 19:05:16
【问题描述】:

在我的 Angular 应用程序中,只要页面处于活动状态并在屏幕上呈现响应,我就需要定期(比如每 y 分钟)进行一次 http 调用。

NodeJS.Timer对象实现setTimeout()好不好

或使用Observable.timer()

【问题讨论】:

  • “在特定时间段内执行一个函数”是什么意思?无论 JS 解释器执行多长时间,函数都会执行。你不能直接控制它。您的意思是在将来某个特定时间开始执行功能吗?这个函数是在浏览器网页Javascript中运行还是在你的服务器上运行?
  • 调用一个函数(比如每 10 分钟一次)。此函数在客户端(浏览器)上运行。
  • 请编辑您的问题以说(在您的问题中),这就是您想要做的。
  • 定期调用函数。它在浏览器网页中运行。
  • setInterval 有什么问题?

标签: node.js angular rxjs rxjs5


【解决方案1】:

Observable.timer() 对 Angular 更有用

例如:

 const tick3$ = Observable.timer(100, 60000);

【讨论】:

    【解决方案2】:

    如果您只想每 10 分钟执行一次常规函数,则可以使用纯 Javascript:

    var timer = setInterval(function() {
        // put your function code here
    }, 10 * 60 * 60 * 1000);
    

    或者,如果函数已经单独定义:

    var timer = setInterval(myFunction, 10 * 60 * 60 * 1000);
    

    用nodejs定时器对象实现setTimeout()好不好

    这个问题真的不清楚你的意思。 nodejs 计时器对象将在 nodejs 服务器上运行,而不是在客户端上运行。既然你说你想在浏览器网页中运行某些东西,我想你不希望 nodejs 上的计时器来执行此操作,而是希望网页中的计时器如我上面的示例所示。


    Angular 还有一个围绕setInterval() 的包装器,称为$interval(),它添加了更多功能,包括计数和一些与数据更改时更新视图相关的特定角度功能。如果您想要这些角度特定的功能,您可以使用$interval()。如果没有,那么你可以使用任何一个。

    【讨论】:

      猜你喜欢
      • 2019-04-23
      • 2023-02-09
      • 2019-08-09
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 2018-08-17
      相关资源
      最近更新 更多