,而js是单线程的,两者并不矛盾,浏览器只是js宿主的运行环境
怎么理解异步?...,同时还能通过另外的线程去做事,然后等待另外的线程做完事之后
比如说:通过回调,事件的方式去通知我们的主线程,然后把Ajax等异步处理要做的事情,在推到主线程当中进行执行
那有哪些东西是需要重新开线程的...既然js是单线程的,那么他是如何是实现异步操作的?我们把这些任务称为:异步任务 同一段时间内可以做多个任务,例如
setTimeout
setInterval
ajax
......(event loop)实现异步的,这个词在很多前端技术书籍上都提到过,但是每次看完,总是不理解,知道有那么一回事,但就是解释不清楚
下面这个经典的问题:猜猜它的输出结果
console.log('1...代码是同步顺序执行的,但是浏览器本身是多线程的,js实现异步是通过事件循环来实现的
定时器setTimeout,setInterval本质上是浏览器提供API,它是异步执行的.也就是说,异步函数代码它不会立即执行调用