Promise的方法

165 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情

大家好,我是大帅子,今天给大家讲一下Promise的几种方法,给大家加深一下印象,Promise在我之前的文章也有介绍,但是方法却没有讲多少,今天算做一个补充吧


1. Promise.all()

  1. Promise.all() 就是为了解决并发多个请求

  2. 但是里面的请求只要有一个失败,就会全部失败

  3. 语法

    • 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);
    })
    

image.png

下面就是只要有一个错误,其他的都拿不到结果

image.png

image.png

2. Promise.race()

  1. Promise.race() 这个就是赛跑机制,哪个先执行完,就先输入哪个,其他就不管了,就例如赛跑机制
  2. 语法跟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);
    })
    
    

image.png

返回值就是跑的最快的一项,是个对象,这个地方就不是数组了


好了,这边已经给大家介绍到这里,以上是我自己的理解,希望可以帮到大家, 欢迎留言我这边一定会第一时间给大家解答,喜欢的可以点赞收藏
🐣---->🦅         还需努力!大家一起进步!!!