有这么一段代码,我不太理解它内部运行的顺序,chrome打印的结果为 1 2 4 3,不看结果时我的想法是 1 4 2 3,以为第二个then的任务会先于第一个then里面的promise.then,现在看来并不是如此,希望有人可以帮忙解释一下。
Promise.resolve()
.then(() => {
console.log(1);
Promise.resolve()
.then(() => console.log(2))
.then(() => console.log(3))
})
.then(() => console.log(4))
被我编辑了一下之后,以下的代码又有这样的结果(以1 2 3 4 5 6 7 8 9 10的顺序打印),发现打印会穿插着进行,本人实在找不到原因了。
Promise.resolve()
.then(() => {
console.log(1);
Promise.resolve()
.then(() => console.log(2))
.then(() => console.log(4))
.then(() => console.log(6))
.then(() => console.log(8))
.then(() => console.log(10))
})
.then(() => console.log(3))
.then(() => console.log(5))
.then(() => console.log(7))
.then(() => console.log(9))
参考这里 关于Promise规范与执行顺序的问题