美文网首页
vue for循环中按顺序axios请求

vue for循环中按顺序axios请求

作者: 张xiao蛋 | 来源:发表于2020-05-27 17:12 被阅读0次
    1. 第一步:首先先对请求的方法进行封装Promise
    fn(formData,config,index){
                return new Promise((resolve, reject) => {
                  upload(formData,config).then(res => {
                    if (res.code === 200) {
                      resolve(res);
                    } else {
                      this.$message.error(res.msg);
                      document.querySelector('#file').value = '';
                    }
                  }).catch(err => {
                  })
                });
              },
    

    2.第二步:使用async和await再对Promise进行封装 并返回Promise的值

    async test(formData,config,index){
                let n = await this.fn(formData,config,index)
                return  n
              },
    

    3.第三步:再循环里执行async的函数

    var arr = []
    for (var i=0;i<5;i++){
                 arr.push(this.test(formData,config,i))
                }
    

    4.第四步:再用Promise.all的方法进行解析

    Promise.all(arr).then(res => {
                  console.log(res);
                }).catch(err => {
                  console.log('error', err)
                })
    

    Promise.all方法中的res就是for循环中按顺序请求返回的结果

    相关文章

      网友评论

          本文标题:vue for循环中按顺序axios请求

          本文链接:https://www.haomeiwen.com/subject/toxgahtx.html