我是Angular的新手,并尝试实现一种逻辑,以在返回false时重试函数调用。
下面是我的代码段。
variable
如果它返回false,我想在100ms后再次调用此函数。
(要调用,直到返回true)
帮助我实现这一目标。
答案 0 :(得分:2)
创建另一个负责检查结果的函数,并将一个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)
}
}
这会使重试的超时时间加倍。