进入updateContainer,var eventTime = requestEventTime(); 这里延申开
function requestEventTime() { if ((executionContext & (RenderContext | CommitContext)) !== NoContext) { //这里二进制的运算...执行的上下文和只要在render或者commit,也就是说,浏览器线程处于react的管辖下的时候,直接返回当前时间 // We're inside React, so it's fine to read the actual time. return now(); } // We're not inside React, so we may be in the middle of a browser event. if (currentEventTime !== NoTimestamp) { // Use the same start time for all updates until we enter React again. return currentEventTime; //上面if不满足,这里像注释中描述的一样,采用当前的相同的eventTime,由于我们要当yield之后再继续下面的所以用一个... } // This is the first update since React yielded. Compute a new start time. currentEventTime = now(); //不解释... return currentEventTime; }
这里简单补一下二进制 位运算的知识:
原码: 是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。 若以带符号位的四位二进值数为例