第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于React源碼中一些全局變量用意有些疑問,貼了關(guān)于 isRendering 全局變量的代碼,有沒有幫忙解答一下的?

關(guān)于React源碼中一些全局變量用意有些疑問,貼了關(guān)于 isRendering 全局變量的代碼,有沒有幫忙解答一下的?

一身三影 2019-07-03 15:37:04
如題,比如 ReactFilberScheduler.js? 中有一個全局變量 isRendering 變量在 requestWork? 和 performWorkOnRoot 方法中有用到,requestWork 函數(shù)開頭判斷當(dāng) isRendering = true 的直接返回return;而在?performWorkOnRoot 的開頭將?isRendering 置為 true? 而在末尾置為 false,那么問題來了? requestWork? 的開頭對 isRendering 的判斷有什么意義?function requestWork(root: FiberRoot, expirationTime: ExpirationTime) {? addRootToSchedule(root, expirationTime);? if (isRendering) {? ? // Prevent reentrancy. Remaining work will be scheduled at the end of? ? // the currently rendering batch.? ? return;? }? //....Omitted code}function performWorkOnRoot(root: FiberRoot, expirationTime: ExpirationTime, isExpired: boolean) {? invariant(? ? !isRendering,? ? 'performWorkOnRoot was called recursively. This error is likely caused ' +? ? ? 'by a bug in React. Please file an issue.',? );? isRendering = true; ? //...Omitted code? isRendering = false;}
查看完整描述

3 回答

?
pardon110

TA貢獻(xiàn)1038條經(jīng)驗 獲得超227個贊

很顯然只是個標(biāo)志位,控制代碼執(zhí)行流程,在一些異步執(zhí)行需要同步代碼的情況下用到。你需要知道,代碼并不總是從上到下逐行執(zhí)行,而異步執(zhí)行在js中是常態(tài)

查看完整回答
反對 回復(fù) 2019-07-03
  • 一身三影
    一身三影
    這些方法不是在同一個線程執(zhí)行么,同一個線程加這種標(biāo)志位并沒有什么實際的用處吧
  • 一身三影
    一身三影
    requestWork 和 performWorkOnRoot 在同一個線程執(zhí)行,那么requestWork中 isRendering 永遠(yuǎn)不會為 true
  • 3 回答
  • 0 關(guān)注
  • 1484 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號