Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在promise chain取得进展?_Javascript_Vue.js_Axios_Nuxt.js - Fatal编程技术网

Javascript 无法在promise chain取得进展?

Javascript 无法在promise chain取得进展?,javascript,vue.js,axios,nuxt.js,Javascript,Vue.js,Axios,Nuxt.js,我有一个需要for循环的多个帖子,我想向用户显示一个进度条。当有一个帖子时,它可以正常工作,我可以看到上传进度,但是如果我尝试使用for循环多次发布,则无法访问onUploadProgress事件,甚至console.log(progressEvent)也不会返回任何结果。我正在使用nuxt框架 async post() { this.upload.open = true; let promises = []; let tuc = this.slider_items; con

我有一个需要for循环的多个帖子,我想向用户显示一个进度条。当有一个帖子时,它可以正常工作,我可以看到上传进度,但是如果我尝试使用for循环多次发布,则无法访问onUploadProgress事件,甚至console.log(progressEvent)也不会返回任何结果。我正在使用nuxt框架

  async post() {
  this.upload.open = true;
  let promises = [];
  let tuc = this.slider_items;
  const len = tuc.length;
  this.upload.queue = len;   //total post count

  for (let i = 0; i < len; i++) 
    let formData = new FormData();
    /*
     *  ...
     */
    formData.append("cover", cover);
    formData.append("_method", "PUT");

    promises.push(
      this.$axios
        .$post(`/api/admin/slides/${i + 1}`, formData, config)
        .then((res) => this.upload.curr_queue++) //which post right now
        .catch((err) => {
          if (!err) {
            return;
          }

          const { errors } = err.response.data;
          this.upload.err.push(err);
          this.upload.err_res.push(Object.values(errors));
        })
    );
  }

  const config = {
    headers: { "Content-Type": "multipart/form-data" },

    onUploadProgress: (progressEvent) => {
      this.upload.percentage = parseInt(
        Math.round((progressEvent.loaded * 100) / progressEvent.total)
      ); /// this is loading screen's progress bar, showing upload percentage

      console.log(progressEvent);  /// Cant see that
    },
  };

  await Promise.all(promises).then((res) =>
    console.log("promises : " + res)
  );
},
async post(){
this.upload.open=true;
让承诺=[];
设tuc=this.slider\u项;
const len=tuc.长度;
this.upload.queue=len;//帖子总数
for(设i=0;ithis.upload.curr_queue++)//现在是哪篇文章
.catch((错误)=>{
如果(!err){
返回;
}
const{errors}=err.response.data;
this.upload.err.push(err);
this.upload.err_res.push(Object.values(errors));
})
);
}
常量配置={
标题:{“内容类型”:“多部分/表单数据”},
onUploadProgress:(progressEvent)=>{
this.upload.percentage=parseInt(
数学圆((progressEvent.loaded*100)/progressEvent.total)
);///这是加载屏幕的进度条,显示上载百分比
console.log(progressEvent);///我看不到
},
};
等待承诺。所有(承诺)。然后((res)=>
log(“承诺:+res”)
);
},
我想做的是,有一个单独的进度条,我想按帖子的顺序显示上传进度百分比,当帖子成功时,这将增加upload.curr_队列和上传进度百分比,并用新帖子重新启动


如果你们想看完整的邮政编码,我可以编辑这个部分。基本上我无法理解为什么我无法访问onUploadProgress事件。

最好在顶部声明您的
config
,而不是在axios函数下。通常你会遇到一个错误,
在初始化之前无法访问'config'
@Ifaruki非常感谢。我在这个问题上浪费了2天的时间,用尽一切办法寻求帮助,但你是第一个尝试帮助的人,而且你的帮助很有效!非常感谢你,先生!我所需要做的就是将配置带到顶部…下次按F12键并检查您的控制台是否有错误我做了,但没有错误,我认为这个问题源于promise.all用法