promis.all
Promise.all() 方法接收一个promise的iterable类型(Array,Map,Set),并且只返回一个Promise实例
请求成功:
返回一个新的promise,值是调用成功结果的一个数组
let p1 = new Promise((resolve, reject) => {
resolve('OK')
})
let p2 = Promise.resolve('成功')
let p3 = Promise.resolve('Success')
const result = Promise.all([p1, p2, p3])
console.log(result)
成功结果:
请求失败:
返回一个新的promise,只要有一个失败就会失败,并且reject的是第一个抛出的错误信息。
let p1 = new Promise((resolve, reject) => {
resolve('OK')
})
let p2 = Promise.resolve('成功')
let p3 = Promise.reject('Error')
const result = Promise.all([p1, p2, p3])
console.log(result)
失败结果:
promise.race
返回一个新的 promise,第一个完成的promise的结果状态就是最终结果状态
例1:
let p1 = new Promise((resolve, reject) => {
resolve('OK')
})
let p2 = Promise.resolve('成功')
let p3 = Promise.reject('Error')
const result = Promise.race([p1, p2, p3])
console.log(result)
执行结果:
例2:
let p1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('OK')
}, 1000)
})
let p2 = Promise.resolve('成功')
let p3 = Promise.reject('Error')
const result = Promise.race([p1, p2, p3])
console.log(result)
执行结果:
例3:
let p1 = new Promise((resolve, reject) => {
reject('Error')
})
let p2 = Promise.resolve('成功')
let p3 = Promise.reject('Error')
const result = Promise.race([p1, p2, p3])
console.log(result)
执行结果:
总结:
1.promise.all方法只要有一个失败就会失败,并且会抛出异常