当您使用新的构造函数创建 Promise 时,Javascript 引擎的幕后会发生什么?

问题描述

我了解到,当您调用诸如 setTimeOut() 之类的 Web API 方法时,会使用元数据(回调函数和时间以毫秒为单位)创建一个计时器对象并将其添加到事件表中,然后事件循环继续调用堆栈中的其余任务。

然后在计时器结束后,回调被添加到异步任务队列中,等待调用堆栈为空以添加到其中。

我了解到使用 ES6 承诺,而不是将异步任务队列添加到具有更高优先级的作业队列中。但只有在执行 then() 中提供的回调时才会发生这种情况。

但是这个承诺的元数据存储在哪里,直到它被添加到作业队列中。就像如何将 setTimeout 保存在 EventTable 中直到计时器结束,Promise 也保存在某处?

我对那部分不是很清楚。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)