//等待 maxCount - 重试最多次数   timer  - 步长
    waiting(condition, maxCount = 500,timer = 10) {
        //重试次数累加
        var retryCount = 0;
        return new Promise((resolve, reject) => {
            var myInterval = setInterval(() => {
                if (condition()) {
                    clearInterval(myInterval);
                    resolve();
                }
                if (retryCount > maxCount) {
                    clearInterval(myInterval);
                }
                retryCount++;
            }, timer);
        });
    }

调用:

waiting(() => {
    var flag = false;
    //... 符合条件时:flag = true;
    return flag; 
}).then(()=>{
    //条件满足后  执行
});

注:以上代码属个人整理,用于交流学习。