异步
华、、
这个作者很懒,什么都没留下…
展开
-
for循环中延迟打印
众所周知,js是单线程的,主线程会执行同步任务,异步任务会被放入任务队列中,同步任务全部完成后再执行异步任务。设置时间为i*1000,打印第一个1花费了0*1000ms,打印第二个1花费了1*1000ms,打印第三个1花费了2*1000ms······这样子就达到了我们想要每隔一秒打印一次的需求。在这段代码中,“设置延迟函数setTimeout,每个延迟函数3秒后执行”这一过程执行了十次,所以执行结果为三秒后10个1一瞬间打印。执行结果:三秒后10个1一瞬间打印,并没有实现我们想要的每隔一秒打印一次。原创 2024-03-28 23:05:44 · 404 阅读 · 1 评论 -
js事件循环
这是因为浏览器仅分配给了js一个主线程来执行任务,且一次只能执行一个任务。但是js某些任务是需要耗时的,例如定时器和ajax的请求操作,HTML5为实现这些任务允许js脚本创建多个线程。于是js中既有同步又有异步了。一旦同步任务都执行完毕,系统就会依次读取任务队列中的任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。浏览器会反复读取任务队列中的任务,逐个完成任务队列中的任务。异步任务:异步任务通过回调函数实现,异步任务被添加到了任务队列中。同步任务:同步任务都在主线程上执行,形成一个执行栈。原创 2024-03-26 22:46:48 · 391 阅读 · 1 评论