js运行机制,异步任务的处理和事件轮询机制
js线程 ☞
我们都清楚 js是单线程自上而下执行的,其实这里面可以把 执行方式又分同步和异步,那异步又分为 宏任务(定时器,dom事件 ajax 都属于宏任务)和 微任务(promise async/await)
因为我们js执行到同步任务的时候会把这个同步任务放到主线程里的调用栈,
当执行到异步任务的时候,论是执行宏任务还是微任务,他都会把这个异步任务放到异步线程里(webapi)然后把有了执行结果的异步任务 放到 “任务队列” 里又成为 “消息队列” “事件队列”,
(其实异步任务不是立马被放到任务队列里的中间还有个webapi(异步线程) 当异步有了运行结果后,这个异步任务才会放到事件队列里)
只要主线程一空,js就会查询任务队列里是否有待执行的任务并执行,这个过程不断重复的过程就叫做事件轮询
只要主线程一空,他就会一直的反复询问队列里面是否有待执行异步任务,这个不断重复的过程就叫事件轮询EvenLoop。

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
