我了解到,当您调用web api方法时 setTimeOut()
,将使用元数据(回调函数和时间,以毫秒为单位)创建一个计时器对象,并将其添加到事件表中,事件循环将继续执行调用堆栈中的其余任务。
然后,在计时器结束后,回调被添加到异步任务队列中,并在那里等待,直到调用堆栈为空为止。
我了解到,在es6承诺中,它不再是异步任务队列,而是将其添加到具有更高优先级的作业队列中。但只有在 then()
被执行。
但是,在将此承诺添加到作业队列之前,它的元数据存储在哪里。比如settimeout如何保存在事件表中,直到计时器过期,承诺是否也保存在某个地方?
我不太清楚那部分。
暂无答案!
目前还没有任何答案,快来回答吧!