代码拉取完成,页面将自动刷新
同步操作将从 北鸟南游/react_hooks_fiber 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Idle示例</title>
</head>
<body>
<script>
function sleep(delay) {
for (let now = Date.now(); Date.now() - now < delay; ) {}
}
let allStart = 0;
const works = [
() => {
allStart = Date.now();
console.log("this first work start");
sleep(20);
console.log("this first work end");
},
() => {
console.log("this second work start");
sleep(15);
console.log("this second work end");
},
() => {
console.log("this third work start");
sleep(10);
console.log("this third work end");
console.log(Date.now() - allStart);
},
];
requestIdleCallback(workLoop, { timeout: 1000 });
// deadline参数是一个对象,有2个属性
// timeRemaining(), 返回此帧还剩下多少时间让用户使用
// didTimeout 判断回调任务callback是否超时
function workLoop(deadline) {
console.log(`this frame remainTime is ${deadline.timeRemaining()}`);
while (
(deadline.timeRemaining() > 0 || deadline.didTimeout) &&
works.length > 0
) {
performUnitOfWork();
}
if (works.length > 0) {
window.requestIdleCallback(workLoop, { timeout: 1000 });
}
}
function performUnitOfWork() {
works.shift()();
}
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。