Javascript 在angularJs中使用$interval Delay的动态值
我想对间隔使用动态延迟:Javascript 在angularJs中使用$interval Delay的动态值,javascript,angularjs,Javascript,Angularjs,我想对间隔使用动态延迟: var tabDelay = 1500; var timer = $interval(function() { if (some if) { tabDelay = 5000; } else { tabDelay = 1000; } } },tabDelay); 但这似乎不是正确的方式。如何在angularJs中使用$interval delay的动态值?考虑使用,因
var tabDelay = 1500;
var timer = $interval(function() {
if (some if) {
tabDelay = 5000;
} else {
tabDelay = 1000;
}
}
},tabDelay);
但这似乎不是正确的方式。如何在angularJs中使用$interval delay的动态值?考虑使用,因为我不相信您可以更改间隔的持续时间考虑使用,因为我不相信您可以更改间隔的持续时间我个人建议重复使用$timeout 这种方法的主要优点是,如果内部有一个异步方法,可以等待该异步发生,然后触发另一个超时。这在为不同的数据集进行池时特别有用
var delay = 500, clearTimeout, stop = false;
function doLoad (stop) {
if (x) {
delay = 1000;
} else {
delay = 500;
}
if (myCondition) {
stop = true;
}
// do stuff
if (stop) {
if (clearTimeout) {
$timeout.cancel(clearTimeout);
}
} else {
clearTimeout = $timeout(doLoad, delay);
}
}
doLoad(delay);
这是一种选择吗?角材料的约束条件是什么 我个人建议重复$timeout 这种方法的主要优点是,如果内部有一个异步方法,可以等待该异步发生,然后触发另一个超时。这在为不同的数据集进行池时特别有用
var delay = 500, clearTimeout, stop = false;
function doLoad (stop) {
if (x) {
delay = 1000;
} else {
delay = 500;
}
if (myCondition) {
stop = true;
}
// do stuff
if (stop) {
if (clearTimeout) {
$timeout.cancel(clearTimeout);
}
} else {
clearTimeout = $timeout(doLoad, delay);
}
}
doLoad(delay);
这是一种选择吗?角材料的约束条件是什么 但我必须在“角度材质”选项卡(如滑块)中使用它:@TheNone Interval使用timeout实现起来很简单,但它可以为您提供一些灵活性,如更改超时时间。@TheNone您可以使用这样的示例清除间隔并重设它(在您的示例中,您可以使用
$Interval.cancel(timer));
但我必须在“角度材质”选项卡(如滑块)中使用它:@TheNone Interval使用timeout实现起来很简单,但它给了您一些灵活性,比如更改超时时间。@TheNone您可以使用这样的示例清除间隔并重置它(在您的情况下,您可以使用$Interval.cancel(timer))
材质中没有任何约束。但是在我的示例中,上面的代码不起作用。上面的代码是“伪代码”-您必须自己实现。输出是什么?我知道:)我在这种情况下使用了递归函数。材质中没有任何约束。但是在我的示例中,上面的代码不起作用。上面的代码是“伪代码”-您必须自己实现。输出是什么?我知道:)我在这种情况下使用了递归函数。