Javascript Can$interval';s时间参数是否可以在间隔之间动态更改?

Javascript Can$interval';s时间参数是否可以在间隔之间动态更改?,javascript,angularjs,Javascript,Angularjs,我正在轮询[有时是大型]实体的上传进度。在第一分钟内,我可以与我的上传服务聊天以更新状态,但在第一分钟之后,我可以少问一次 我必须销毁现有的$interval并创建一个具有更长间隔时间值的新的$interval吗?或者我可以以某种方式更新现有的$interval的时间参数吗?有很多选项。我在评论中看到了使用settimeout的建议,您可以尝试一下。我有另一个建议,可以清除一个间隔并设置另一个间隔。代码: var interval = window.setInterval(function(){

我正在轮询[有时是大型]实体的上传进度。在第一分钟内,我可以与我的上传服务聊天以更新状态,但在第一分钟之后,我可以少问一次


我必须销毁现有的$interval并创建一个具有更长间隔时间值的新的$interval吗?或者我可以以某种方式更新现有的$interval的时间参数吗?

有很多选项。我在评论中看到了使用settimeout的建议,您可以尝试一下。我有另一个建议,可以清除一个间隔并设置另一个间隔。代码:

var interval = window.setInterval(function(){alert('test');}, 3000);
这是另一半:

<input type='button' value='test' onclick='clearTheInterval()'>

function clearTheInterval()
{
window.clearInterval(interval);
}

函数clearTheInterval()
{
窗口。清除间隔(间隔);
}

然后您可以使用一些脚本来再次设置间隔。如果此代码不起作用,请告诉我,我会回来修复它,因为我现在正在打电话。

在这种情况下,您应该使用$timeout…我每秒运行一次特定呼叫。这是$interval的完美用例。但是,如果我在某个时候确定这个间隔可能会运行一个小时,而不是5分钟,那么我就不需要和我的后端聊天了。为什么我要一次又一次地实例化一个新的超时来模拟$interval呢?这里您关心的是什么?这是微观优化吗?使用自重启$timeout或停止$interval并使用新的时间值启动新的$interval,成本应该不会太高。@Kristian
我是否可以以某种方式更新现有$interval的时间参数?
-->这是不可能的,您传递的是一个基本数字
我必须销毁现有的$interval并创建一个具有更长间隔时间值的新的$interval
-->这比只创建一个超时(除非您不经常这样做)要好多少?因为我不经常这样做。我会打500次电话。。。我只需要在满足某个阈值后更新间隔时间一次。哈哈,没关系,伙计们,我现在有了我的答案——只是销毁并实例化新的间隔…这在技术上是不正确的,因为你没有使用angular的$interval方法,这就是问题所在。但其要点是正确的。谢谢,我不熟悉角型js。我认为问题中没有提到这一点。你能解释一下什么是角js吗?