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);