vue for循环中按顺序axios请求

2020-05-27  本文已影响0人  张xiao蛋
  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循环中按顺序请求返回的结果

上一篇下一篇

猜你喜欢

热点阅读