promise.all执行顺序与返回顺序

260 阅读1分钟
// 方法promiseA,返回一个Promise对象
function promiseA() {

	return new Promise((resolve, reject) => {
		setTimeout(() => {
			console.log('A')
			resolve('A')
		}, 3000)
	})
}
// 方法promiseB,返回一个Promise对象
function promiseB() {
	return new Promise((resolve, reject) => {
		setTimeout(() => {
			console.log('B')
			resolve('B')
		}, 1000)
	})
}
// 按照A, B的顺序添加到promise数组中
Promise.all([promiseA(), promiseB()]).then(resolve => {
	console.log(resolve)
})

// 输出情况

B
A 
Array [ "A", "B" ]

console.log()可以看出的确是按照谁执行的快谁先打印结果, 但是最终返回的结果仍然是按照promise的添加顺序返回的