我不明白为什么我们执行此代码会有如此奇怪的结果。为什么没有12121212的图像?在每个1之后,我们有3个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));
这是因为在解决另一个承诺时涉及多个滴答声。
但是,实际上,您应该忽略这一点,永远不要依赖独立的诺言链之间的时间安排。