浏览器多线程和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中执行该方法;
findNodeHandle
https://www.cnblogs.com/zhiyingzhou/p/7471212.html