javascript 异步原理
javascript 异步原理
console.log(1); setTimeout(function(){for(var i=0;i<1000000000;i++){}},0) console.log(2); setTimeout(function(){console.log(7)},0) console.log(3); console.log(4); console.log(5);
运行结果是12345678
一定先运行主线程 再运行异步线程 然后异步线程运行 再去运行主线程 如此循环
ps:异步线程 运行也是同步的
异步运行玩再运行主线程的例子
console.log(1); setTimeout(function(){for(var i=0;i<3000000000;i++){}},0) console.log(2); setTimeout(function(){console.log(7)},0) console.log(3); console.log(4); console.log(5); VM503:1 1 VM503:3 2 VM503:6 3 VM503:7 4 VM503:8 5 undefined 9VM482:2 99 VM503:5 7 9VM482:2 99
点击输出99
可以发现 异步堵塞后 点击不会输出99 直到异步走完 才会运行主线程99
图片加载和axios异步请求 这个不用等异步走完才会运行主线程 因为图片下载和http请求用不着js 线程 等他们回调 就会进入异步线程