我们的js 是一个单线程的语言,只有等待一件事情做完以后,才会去做另外一件事情,按照这样的逻辑,但是当我们遇到一种情况,比如axjax 请求的时候,我们明明cpu 很空,但是我们却要等待这个ajax 有结果以后再往下面执行,这显然是不合理,所以就是有了同步任务,和异步任务的概念,当我们常规的代码,是同步的代码,他会再主线程依次执行,当我们遇到异步代码,比如ajax settimeout 的时候,会把它们放到异步队列里面去,等我们主线程的同步代码执行完以后,在会过头去,看异步队列里面有么有好了的事件,有的话,把他推入执行栈,执行,又去看异步队列里面有么有好,就是事件循环。
网友评论