,必须等待打完了一个,然后再接着打下一个的
在如何看待同步之前,有必要了解下计算机中两个专业术语概念,就是进程和线程
进程: 它是系统进行资源分配和调度的一个独立单位,具有一定独立功能的程序关于某个数据集合上的一次运行活动...,同时还能通过另外的线程去做事,然后等待另外的线程做完事之后
比如说:通过回调,事件的方式去通知我们的主线程,然后把Ajax等异步处理要做的事情,在推到主线程当中进行执行
那有哪些东西是需要重新开线程的...监听DOM,修改页面的操作,渲染我们的样式,都是需要浏览器去处理的
这样的话,所谓的异步请求就很好理解了
指web服务器对请求作出响应时不要求你等待,这说明,浏览器解析js代码,当遇到异步任务时,不会僵持在那里不动...对于用户而言,阻塞就意味着"卡死",这样就导致了很差的用户体验
想想在一个聊天室里,你发一条信息,必须要等待对方回应后,才能在发一条信息,这显然会令人奔溃的
那js单线程又是如何实现异步的呢
是通过事件循环....也就是说,异步函数代码它不会立即执行调用
一旦遇到异步的任务,会将它安排到一个任务队列中挂起状态,浏览器重新开一个新的线程单独处理它,它并不会阻塞主线程的代码,当主线程任务处理完了,有空闲时,此时,等待执行异步任务队列中的事情