承诺`then`,函数不返回任何内容,而函数返回另一个承诺

Ден*_*нов 4 javascript promise

我不明白为什么我们执行这段代码会有如此奇怪的结果。

为什么没有 12121212 的图像?在每个 1 之后,我们有三个 2。

Promise.resolve()
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); })
.then(() => { console.log(1); return Promise.resolve(); });

Promise.resolve()
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); })
.then(() => { console.log(2); });
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 10

这是因为用另一个承诺解决承诺涉及多个滴答声。

但实际上,您应该忽略这一点,并且永远不要依赖于独立承诺链之间的时间安排。