【问题标题】:Can we use onDownloadProgress from axios for loading API?我们可以使用 axios 的 onDownloadProgress 来加载 API 吗?
【发布时间】:2019-02-01 10:50:14
【问题描述】:

我需要在使用 axios 的 react 项目中创建一个加载 API 的进度条,我为此发现了“onDownloadProgress”函数。但我不知道我们是否可以使用它来获取诸如加载百分比之类的信息,或者它是否仅用于文件下载?

所以我不确定我们是否可以通过此函数获取有关 API 加载的信息?

我尝试在我的代码中实现这个功能:

componentWillMount() {
  axios.get('https://guillaumeduclos.fr/jd-portfolio/wp-json/wp/v2/posts')
  .then(response => {
    axios.onDownloadProgress = (progressEvent) => {
      let percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total );
      console.log(percentCompleted);
    }
    this.setState({
      datas: response.data[0].acf.project_illustration.url,
      loading: false
    });
  })
  .catch(error => {
    if(error.response) {
      console.log(error.responderEnd);
    }
  });

}

console.log() 不显示。感谢您的帮助。

【问题讨论】:

    标签: javascript reactjs api axios


    【解决方案1】:

    您需要将onDownloadProgress 作为选项传入。 由于lengthComputable,它将打印出“Infinity”。

    这是关于该问题的帖子:JQuery ajax progress via xhr

    componentWillMount() {
    axios.get('https://guillaumeduclos.fr/jd-portfolio/wp-json/wp/v2/posts', {
      onDownloadProgress: (progressEvent) => {
        let percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
        console.log(progressEvent.lengthComputable)
        console.log(percentCompleted);
      }
    })
      .then((response) => {
        this.setState({
          datas: response.data[0].acf.project_illustration.url,
          loading: false
        })
      }).catch(error => {
        if (error.response) {
          console.log(error.responderEnd);
        }
      });
    

    }

    【讨论】:

    • 好的,我从您的链接中看到了问题,谢谢。所以打印“无穷大”是因为该函数无法获取我的 API 的总值?
    猜你喜欢
    • 1970-01-01
    • 2019-11-13
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多