vue-promise的all方法使用

  在一个函数里面,需要发送多个ajax请求,并且下一个请求都需要上一个请求返回的数据,那我们可以下面的做法:

复制代码
  new Promise((resolve, reject) => {
    //执行异步请求
    $.get("test.cgi", {
        name: "John",
        time: "2pm"
      },
      function (data) {
        resolve(data)
      });
  }).then(data => {
    console.log('请求成功1')

    return new Promise(resolve => {
      $.get("test.cgi", {
        name: "John",
        time: "2pm"
      },
      function (data) {
        resolve(data)
      });
    }).then(resolve => {
      console.log('请求成功2')
    })
  })
复制代码

  但有时候也不是需要下一个请求要上一个请求的数据,两个请求各自不相干,但我们要求两个请求执行完毕后,再拿他们的数据进行统一处理,promise提供了一个all方法能让我们做到:

复制代码
  Promise.all([
    new Promise(resolve => {
      $.get("test.cgi", {
        name: "John",
        time: "2pm"
      },
      function (data) {
        resolve(data)
      })
    }),
    new Promise(resolve => {
      $.get("test.cgi", {
        name: "John",
        time: "2pm"
      },
      function (data) {
        resolve(data)
      })
    })
  ]).then(response => {
    console.log(response[0])
    console.log(response[1])
  })
复制代码

  all要传入一个数组,数组的元素是一个 Promise对象,相当封装一个异步操作;当数组中的所有Promise的异步操作执行完毕,那就会调用then进行处理,参数response包含了所有的promise返回的数据,是一个数组,response[0]表示第一个promise返回的数据,以此类推。

posted @   爱编程DE文兄  阅读(1796)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-04-03 JavaSE-线程的状态图
点击右上角即可分享
微信分享提示