JavaScript在单线程情况下如何处理Promise?

3

当JS是单线程时,JavaScript如何异步执行Promise?我知道如何使用Promise,但它在幕后的工作原理仍然不清楚。


简单来说,每个结果的回调函数都存储在一个数组中。当延迟对象在某个事件上被解决时,这些回调函数就会被执行。 - Kevin B
与setTimeout的工作方式相同。执行只是被延迟,不需要另一个线程来延迟某些东西。无论是否有IO,Promise的解决或失败都必须被延迟,否则它就不是Promise。 - mpm
3
请参阅:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/EventLoop - SimpleJ
异步 != 多线程 - Bergi
1个回答

2
承诺是一个分配给查找的回调队列。一旦您解决了承诺,它将迭代所有通过thendone分配的回调函数。

1
比回调函数稍微复杂一点,但是有同样的限制。 - Bergi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接