例:需求是点击下载报告按钮,去请求后端接口生成一个报告并下载,由于整个过程时延较大,防止在接口发送请求且还未返回响应结果时用户不断点击按钮请求接口,造成接口请求重复,故在下载组件中通过一个状态变量isloading 去控制是否请求接口,另外在接口响应后使用 finally() 重置状态变量,此函数无论异常是否被捕获,finally的代码一定会被执行,
代码如下:
代码:
接口函数:
function gm_fetch<Req = any, Res = any>(
url: string,
method?: METHOD_KEY,
params?: Req,
config?: AxiosRequestConfig
): AxiosPromise<Res> {
let headers = { }