一个晨晨啊 2023-12-19 17:32 采纳率: 33.3%
浏览 5

umi-max中的请求怎么中止

umi-max中的请求应该怎么中止

在公司项目中要上传一个文件,包比较大,上传时间长,在用户取消上传包的时候怎么中止这个请求

  • 写回答

1条回答 默认 最新

  • K_n_i_g_h_t_1990 2023-12-19 20:18
    关注
    
    //使用axios的cancelToken的方法
    import { request } from 'umi';
    
    //创建一个cancelToken的source
    const source = request.CancelToken.source();
    
    //发送请求时,传递cancelToken参数
    request('/api/upload', {
      method: 'POST',
      data: file,
      cancelToken: source.token,
    }).then(response => {
      //处理响应
    }).catch(error => {
      //处理错误
    });
    
    //在用户点击取消按钮时,调用cancel方法
    source.cancel('User canceled the upload');
    
    //使用fetch的AbortController的方法
    import { request } from 'umi';
    
    //创建一个AbortController实例
    const controller = new AbortController();
    
    //发送请求时,传递signal参数
    request('/api/upload', {
      method: 'POST',
      data: file,
      signal: controller.signal,
    }).then(response => {
      //处理响应
    }).catch(error => {
      //处理错误
    });
    
    //在用户点击取消按钮时,调用abort方法
    controller.abort();
    
    //使用react-query的cancelQuery的方法
    import { useQuery, useMutation, useQueryClient } from 'react-query';
    
    //创建一个queryClient实例
    const queryClient = useQueryClient();
    
    //发送请求时,给请求一个唯一的key
    const { data, error, isLoading } = useQuery('upload', () => {
      return request('/api/upload', {
        method: 'POST',
        data: file,
      });
    });
    
    //在用户点击取消按钮时,调用cancelQuery方法,传入请求的key
    queryClient.cancelQuery('upload');
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月19日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据