我想要的是:
调用一个函数 check_and_wait() 来测试一个条件是真还是假。它将在指定的时间内以设定的间隔保持检查/循环。
程序的其余部分必须等待该测试的结果。这是出错的部分。它不必使用 setInterval,这就是它现在的实现方式。
function test_condition(){
    // do some test. return true or false
}
function check_and_wait(){
    var maxtime = 3000;
    var  start = new Date().getTime();
    condition = false;
    var interval = setInterval(function() {
        if(condition){return true;}
        else{
            if(  new Date().getTime() - start < maxtime ){
               condition = test_condition();
            }
            else{return false;}
        }
    }, 250); 
}
result = check_and_wait();
if(result){
    //do something
}
else{
     //do something else
}