如果在角度超时中返回 false,则重试函数调用



我是 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)
 }

}

这将使重试到重试的超时加倍。

相关内容

  • 没有找到相关文章

最新更新