You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In Step III: Concurrent Mode, I learn that: requestIdleCallback(func) will call the call back function when the browser is idle.
But in workLoop function, that while loop confused me.
function workLoop(deadline) {
let shouldYield = false
while (nextUnitOfWork && !shouldYield) {
nextUnitOfWork = performUnitOfWork(
nextUnitOfWork
)
shouldYield = deadline.timeRemaining() < 1
}
requestIdleCallback(workLoop)
}
My question is: if shoudYield is false, it means that the browser is busy, so we should stop calling the next unit of work.
But in this while loop, if shoudYield is false, the loop will continue and do the next unit of work. Why?
The text was updated successfully, but these errors were encountered:
HaHa~, it's my mistake!
Here is the doc about the return value.
Returns a DOMHighResTimeStamp, which is a floating-point value providing an estimate of the number of milliseconds remaining in the current idle period.
So deadline.timeRemaining() < 1 means that there is no remaining time to do the work, we should break the while loop and request another callback.
Thank you! Love your amazing project, I will continue learning with it.
In Step III: Concurrent Mode, I learn that: requestIdleCallback(func) will call the call back function when the browser is idle.
But in workLoop function, that while loop confused me.
My question is: if
shoudYield
is false, it means that the browser is busy, so we should stop calling the next unit of work.But in this while loop, if
shoudYield
is false, the loop will continue and do the next unit of work. Why?The text was updated successfully, but these errors were encountered: