js等待某个变量准备就绪

代码(注意:如果没有checkCount,使用它的页面销毁时,应当销毁定时器,防止泄露):

/**
 * 等待某个变量准备就绪
 * @param { () => { } } func 
 */
async function waitForReady(func) {
    return new Promise((resolve, reject) => {
        let checkCount = 0;
        let t = setInterval(() => {
            if (func() || checkCount > 100) {
                clearInterval(t);
                resolve();
            }
            checkCount++;
        }, 100);
    });
}

如何使用:

let xxx;
await waitForReady(() => xxx);
posted @ 2024-04-25 14:04  0611163  阅读(21)  评论(0编辑  收藏  举报