携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情
大家好,我是大帅子,今天给大家讲一下Promise的几种方法,给大家加深一下印象,Promise在我之前的文章也有介绍,但是方法却没有讲多少,今天算做一个补充吧
1. Promise.all()
-
Promise.all() 就是为了解决并发多个请求
-
但是里面的请求只要有一个失败,就会全部失败
-
语法
- Promise.all([函数1,函数2])
- 每个函数的返回值必须是Promise
- 输出的结果也是一个数组,且一一对应
举个梨子
let getSwiper = () => {
return axios({ url: 'https://56345645645645et/45645lic/v1/home/swiperdata' })
}
let getCatitems = () => {
return axios({ url: 'https://563456456456/home/sw45lic/v1/home/swiperdata' })
}
let getFloor = () => {
return axios({ url: 'https://56345645645c/v1/home/some/swiperdata' })
}
Promise.all([getSwiper(), getCatitems(), getFloor()]).then((res) => {
console.log(res);
})
下面就是只要有一个错误,其他的都拿不到结果
2. Promise.race()
- Promise.race() 这个就是赛跑机制,哪个先执行完,就先输入哪个,其他就不管了,就例如赛跑机制
- 语法跟Promise.all的语法一样
let getSwiper = () => {
return axios({ url: 'https://av1bbbbbbbbbbbbbbbav1bbbbbbbbbbbbbbbfloordata' })
}
let getCatitems = () => {
return axios({ url: 'https://aav1bbbbbbbbbbbbbbbv1av1bbbbbbbbbbbbbbbfloordatas' })
}
let getFloor = () => {
return axios({ url: 'https://aav1bbbbbbbbbbbbbbbv1av1bbbbbbbbbbbbbbbfloordata' })
}
Promise.race([getFloor(), getCatitems(), getSwiper()]).then((res) => {
console.log(res);
})
返回值就是跑的最快的一项,是个对象,这个地方就不是数组了
好了,这边已经给大家介绍到这里,以上是我自己的理解,希望可以帮到大家, 欢迎留言我这边一定会第一时间给大家解答,喜欢的可以点赞收藏
🐣---->🦅 还需努力!大家一起进步!!!