正如您已经在问题中暗示的那样,您的代码同步创建了所有promise。相反,仅应在上一个解析时创建它们。
其次,new Promise
需要使用调用resolve
(或reject
)来解决创建的每个promise。计时器到期时应执行此操作。这将触发then
您对该承诺的任何回调。为了实现链,这种then
回调(或await
)是必需的。
以for
立即解决承诺开始的循环
从此Array#reduce
开始,立即解决承诺
具有将自身作为分辨率回调传递的函数
使用ECMAScript2017的async
/ await
语法
使用建议的ECMAScript2020的for await...of
语法
请在下面查看每个选项的摘要和注释。