vue for循环中按顺序axios请求

  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循环中按顺序请求返回的结果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容