2

我有一个函数 checkReg() ,它检查我的设备是否已在服务器上注册,第一次启动它并返回一个 regStatus 变量。该功能工作正常,但注册需要一些时间才能完成,如果没有确认注册完成,我的应用程序无法继续。

我想使用一个简单的线程在 1 秒内检查一次 regStatus,如果尚未注册,则在 5 次尝试后终止线程并返回,如果在 5 次尝试之前完成,则终止线程并继续。

Thread(run every 1 sec){
    regStatus=checkReg();
    if(regStatus==='done'){

        //do something
        //kill thread
    }else if(regStatus==='inprogress'){

        //do nothing
    }elseif(regStatus==='error'){

        //kill thread
    }
}

我对 JS 很陌生,不知道如何启动、计时或终止线程。我已经使用了 setTimeout 函数,但我不确定它是否可以做我想做的事。

4

1 回答 1

2

JavaScript 通常没有线程,但您可以轻松地使用setInterval()

var retry = 0

function checkStatus() {
  var regStatus=checkReg();
  if(regStatus==='done'){
    //...
  }
  if(++retry > 5) {
    clearTimeout(id);
  }
}

var id = setInterval(checkStatus, 1000);
于 2012-11-15T19:20:51.370 回答