var p3 = new Promise( (resolve, reject) => {
resolve('B')
})
var p1 = new Promise( (resolve, reject) => {
resolve(p3)
})
p2 = new Promise( (resolve, reject) => {
resolve('A')
})
p1.then(v => console.log(v))
p2.then(v => console.log(v))
node 与 浏览器运行不一致。 正常的理解 p1 内部 resolve 了一个 promise 不是同步的的 所以明显要p2晚一点。
不管是输出 A B,还是输出 B A,都是对的。这就是异步。我们的所有操作都不能依赖于前置操作的返回顺序。