requestAnimationFrame() 函数的递归可实现此功能:
// 监听变量 flag
var flag = false;
// 不停检测 flag 的值,直到为 true 就退出
function listenFlagState() {
if (flag) {
console.log("flag has changed");
return;
}
requestAnimationFrame(listenFlagState);
};
listenFlagState();
// 测试,五秒后改变 flag 为 true
setTimeout(() => {
flag = true;
}, 5000);