首页 > 解决方案 > 如何使用 axios get 方法获取 onDownloadProgress 百分比?

问题描述

这是我的代码:

React.useEffect(() => {
        axios
            .get('https://jsonplaceholder.typicode.com/photos', {
                onDownloadProgress: (progressEvent) => {
                    let percentCompleted = Math.round(progressEvent.loaded * 100 / progressEvent.total);
                    console.log(progressEvent.lengthComputable);
                    console.log(percentCompleted);
                }
            })
            .then((response) => {
                console.log('response done');
            })
            .catch((error) => {
                console.log(error.message);
            });
    }, []);

这是 console.log :

false
Infinity
false
Infinity
response done

我在尝试获取 get 方法进度事件时得到无穷大。如何获得 axios get 方法的确切百分比?

标签: javascriptreactjsaxios

解决方案


我通过使用另一个 api 获取请求解决了这个问题。简单地说, jsonplaceholder api 没有 get request 的进度值。

axios.get('https://systran-systran-platform-for-language-processing-v1.p.rapidapi.com/translation/text/translate',
 { onDownloadProgress: (progressEvent) => {

     let percentCompleted = Math.round(progressEvent.loaded * 100 / 
     progressEvent.total);
     console.log(progressEvent.lengthComputable);
     console.log(percentCompleted);

  }
})

推荐阅读