umi-request-progress-middleware
Version:
Middleware used by umi-request to obtain upload and download progress
56 lines (39 loc) • 1.29 kB
Markdown
[]: https://github.com/umijs/umi-request
fetch 并没有提供进度事件 umi-request 基于 fetch 也没有提供进度事件 umi-request-progress-middleware umi-request 的中间件 用于获取下载进度
`onDownloadProgress` 采用 stream 的方式实现获取下载进度
`onUploadProgress` 待实现
目前,安装方式有以下几种:
```bash
npm install umi-request-progress-middleware
yarn add umi-request-progress-middleware
```
`umi-request-progress-middleware` 扩展了 `RequestOptionsInit`
新增 `onDownloadProgress` 事件 获取下载进度
```typescript
type StreamProgressEvent = {
lengthComputable: boolean;
loaded: number;
total: number;
};
interface RequestOptionsInit {
/**
* 下载进度事件的回调函数
*/
onDownloadProgress?: (progressEvent: StreamProgressEvent) => void;
// todo 上传进度事件待定
}
import request from 'umi-request';
import progressMiddleware from 'umi-request-progress-middleware';
// 注册内核中间件
request.use(progressMiddleware, { core: true });
// 请求
request(path, {
// 获取下载进度
onDownloadProgress: (progressEvent) => {
console.log(((process.loaded / process.total) * 100).toFixed(2) + '%');
},
});
```