JavaScript中Promise的执行顺序是什么?

11 min read

在JavaScript中,Promise的执行顺序是按照声明顺序来执行的。

例如:

let p1 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 1000, 'one');
});

let p2 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 2000, 'two');
});

let p3 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 3000, 'three');
});

Promise.all([p1, p2, p3]).then(function(values) {
  console.log(values);
});

在这个例子中,p1、p2和p3分别是三个Promise对象,它们都是在不同的时间间隔内被解决的。但是,由于它们是按照声明的顺序创建的,它们的执行顺序也是依次执行的:p1先被解决,然后是p2,最后是p3。

当然,也可以使用async/await来管理Promise的执行顺序,使代码更加清晰易懂。