Open gogoend opened 4 years ago
最近有个来自未来的同事(当然也可能会成为陌生人)问我Event Loop是什么,并让我说一下这是什么鬼👻 当问到这个问题的时候,我的内心,是绝望的,因为我并没有准备这个问题,呵呵呵呵呵,尴尬了
今日更新:嗯,看来我还是没机会和他成为同事 (=_=)|||
(=_=)|||
2022-6-8 日更新
函数在执行过程中,会存在一个栈,用于存储当前正在执行的函数,所谓“执行栈”。同时也存在一个队列(或许也可以是两个)用于存放异步函数的回调函数,所谓“异步队列”。
每当遇上新的函数调用,就会把当前函数压入到栈中;执行完毕后从栈中弹出,然后再压入下一个要执行的函数。当栈为空后,就表示当前函数已经执行完成。
当然,如果函数执行过程中间遇上了能够产生异步的函数(如Promise#then、setTimeout),那么就把相关回调压入异步队列中,当浏览器通知到可以执行时,就让相关回调出队并执行。
emmmmm
最近有个来自未来的同事(当然也可能会成为陌生人)问我Event Loop是什么,并让我说一下这是什么鬼👻 当问到这个问题的时候,我的内心,是绝望的,因为我并没有准备这个问题,呵呵呵呵呵,尴尬了
今日更新:嗯,看来我还是没机会和他成为同事
(=_=)|||
函数在执行过程中,会存在一个栈,用于存储当前正在执行的函数,所谓“执行栈”。同时也存在一个队列(或许也可以是两个)用于存放异步函数的回调函数,所谓“异步队列”。
每当遇上新的函数调用,就会把当前函数压入到栈中;执行完毕后从栈中弹出,然后再压入下一个要执行的函数。当栈为空后,就表示当前函数已经执行完成。
当然,如果函数执行过程中间遇上了能够产生异步的函数(如Promise#then、setTimeout),那么就把相关回调压入异步队列中,当浏览器通知到可以执行时,就让相关回调出队并执行。