如何在setTimeout函数执行完之后调用回调函数

时间:2022-05-14 05:36:06

遇到个需求setTimeout执行完之后需调用一个方法,想到的解决方法是在外部定义个变量,setTimeout延迟执行的函数中去给变量赋值,同时在setTimeout外部用循环定时器setInterval去检测这个变量是否等于赋值

function foo(callback) {    
    var a = false;
    setTimeout(function(){
        a = true;
    },1000);
    var timer = setInterval(function(){
        if(a)
        {
            clearInterval(timer);
            callback(); 
        }
    },100);
}