本文共 515 字,大约阅读时间需要 1 分钟。
我们都知道,JS是一门单线程的脚本语言,单线程有个很大的问题就是阻塞;当我当前的动作没有完成时,后边的动作就要等着当前动作完成之后才能开始;那既然会有这么严重的,为什么JS还是选择了单线程?
JS是让用户通过用来操作DOM的,那么试想一下,若是多线程的话,我点一个按钮,是要增加一个标签,但是另一个线程还没走完,这个线程是要删除一个标签,那么浏览器就蒙圈了,我到底听谁的,一个让我加,一个让我删除?这样乱套了。所以JS最终成了一门单线程的语言,那么怎么去解决这个阻塞呢? 异步应运而生!
// 代码块1 // 下边我们看看这个例子,来体验一下异步的神奇; console.log(1); setTimeout(()=>{ console.log(2) },10) console.log(3); for(let i = 0; i 999999999; i++){ // 这个for循环执行完成所需事件大于10秒 } console.log(4) // 输入结果为: 1 3 4 2
上边的代码是怎么执行的呢?
JS的异步有个大特点,须当同步代码执行完成后,才会再去执行异步,哪怕异步已经
转载地址:http://xadnv.baihongyu.com/