Skip to content

Commit 5b5c5fa

Browse files
committed
三: 3.创建 workLoop
1 parent e6967c0 commit 5b5c5fa

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/mini-react/fiber.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,16 @@ function performUnitOfWork(workInProgress) {
102102
}
103103
}
104104
}
105+
106+
// 处理循环和中断逻辑
107+
function workLoop(deadline) {
108+
let shouldYield = false;
109+
while (nextUnitOfWork && !shouldYield) {
110+
// 循环执行工作单元任务
111+
performUnitOfWork(nextUnitOfWork);
112+
shouldYield = deadline.timeRemaining() < 1;
113+
}
114+
requestIdleCallback(workLoop);
115+
}
116+
117+
requestIdleCallback(workLoop);

0 commit comments

Comments
 (0)