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))
Knoten- und Browserbetrieb sind inkonsistent. Es ist normal zu verstehen, dass p1 ein Versprechen intern auflöst und nicht synchron ist, sodass es offensichtlich später als p2 ist.
不管是输出 A B,还是输出 B A,都是对的。这就是异步。我们的所有操作都不能依赖于前置操作的返回顺序。