Promise.all
作用:合并多个promise对象,等待结果全部成功后,返回结果
语法:Promise.all( [Promise对象1,Promise对象2,Promise对象3]…).then()
特点:返回结果是一个数组,
注意:如果有1个Promise失败, 则整个Promise对象则失败,它的值是这个失败的Promise的值
案例:
<script>
let p1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(100)
}, 5000)
})
let p2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject(1)
}, 1000)
})
let p3 = axios.get('http://ajax-api.itheima.net/api/province')
let p = Promise.all([p1, p2, p3])
p.then(res => {
console.log(res)
}).catch(err => {
console.log('err', err)
})
</script>
返回结果是err 1
Promise.race
作用:发起并同时运行多个promise对象, 只要任何一个有结果(成功|失败), 返回结果执行then
语法:Promise.race( [Promise对象1,Promise对象2,Promise对象3]…).then()
特点:返回第一个有结果的Promise对象的结果,无论成功失败
案例:
<script>
let p1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(10)
}, 10)
})
let p2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(1)
}, 1000)
})
let p3 = axios.get('http://ajax-api.itheima.net/api/province11')
let p = Promise.race([p1, p2, p3])
p.then(res => {
console.log(res)
}).catch(err => {
console.log('err', err)
})
</script>
返回结果是 10
Promise.allSettled
作用:合并多个promise对象,返回结果
语法:Promise.allSettled( [Promise对象1,Promise对象2,Promise对象3]…).then()
特点:返回一个promise,并带有一个对象数组
注意:返回的是一个所有给定的 promise都已经fulfilled或rejected的 promise对象
案例:
<script>
let p1 = Promise.reject(1)
let p2 = Promise.resolve(2)
let p3 = Promise.resolve(3)
let p = Promise.allSettled([p1, p2, p3])
console.log(p)
</script>
结果是一个promise对象,里面带有一个对象数组
标签:resolve,err,对象,race,let,promise,Promise,allSettled From: https://www.cnblogs.com/Ayako/p/16894167.html