需求

上传下载进度回调

  1. axios.get('/more/get',{
  2. onDownloadProgress(progressEvent) {
  3. // 监听下载进度
  4. }
  5. })
  6. axios.post('/more/post',{
  7. onUploadProgress(progressEvent) {
  8. // 监听上传进度
  9. }
  10. })

实现

声明类型

export interface AxiosRequestConfig {
  onDownloadProgress?: (e: ProgressEvent) => void
  onUploadProgress?: (e: ProgressEvent) => void
}

添加onprogress回调

if (onDownloadProgress) {
  request.onprogress = onDownloadProgress
}

if (onUploadProgress) {
  request.upload.onprogress = onUploadProgress
}

配置测试接口

const multipart = require('connect-multiparty')

app.use(
  multipart({
    uploadDir: path.resolve(__dirname, 'upload-files')
  })
)
// grogress 上传进度
router.post('/more/upload', function(req, res) {
  console.log(req.body, req.files);
  res.json('upload ok')
})