我是 Angular 的新手,并试图实现一个逻辑,以便在返回 false 时重试函数调用。
下面是我的代码片段。
var checkHeaderPos = function() {
if(CONDITION)
return true;
else
return false;
}
$timeout(function() {
checkHeaderPos();
}, 100);
如果它返回 false,我想在 100ms 后再次重新调用此函数。
(想要调用,直到它返回 true(
帮助我实现这一目标。
创建另一个函数,该函数负责检查结果并将其注册为回调timeout
。像这样的东西。
function retryFn(fn, timeout) {
if ( fn() === false ) {
setTimeout( () => retryFn(fn, timeout), timeout)
}
}
你会这样称呼它
retryFn(checkHeaderPos, 100)
通过对功能进行一些调整,您甚至可以控制从调用到调用的超时
function retryFn(fn, timeout) {
if ( fn() === false ) {
setTimeout( () => retryFn(fn, timeout * 2), timeout)
}
}
这将使重试到重试的超时加倍。