js執行緒的相關學習
阿新 • • 發佈:2018-12-11
瀏覽器多執行緒和js單執行緒
參考連結:瀏覽器多執行緒和js單執行緒 參考連結:setTimeout的原理及在JavaScript執行緒執行佇列中的位置 1、JavaScript引擎執行緒(主執行緒): 主執行緒同步執行,其它執行緒非同步執行,等主執行緒程式碼執行完再從訊息佇列中獲取結果繼續執行;所以settime裡的內容永遠會等到主執行緒結束後再執行; 2、GUI渲染執行緒(一定和主執行緒互斥,不能同時執行): dom操作的程式碼會在事件佇列中生成一個任務,js執行到這個任務時就會去呼叫GUI引擎渲染. 3、瀏覽器事件觸發執行緒 4、Http請求執行緒
setTimeOut解析
setTimeOut中的方法只會在主執行緒完成後才開始執行;
let nodeHandle = findNodeHandle(ref);
if (nodeHandle) {
NativeModules.ModuleName.nativeMethod(nodeHandle);
}
1、呼叫findNodeHandle方法只能在componentDidMount後執行(才可以操作虛擬dom); 2、rn執行nativeMethod時如果需要傳入nodeHandle,必須等js主執行緒結束才有效,比如可以在settimeout中執行該方法;