首页 > 其他分享 >实现Fetch 请求扩展超时功能

实现Fetch 请求扩展超时功能

时间:2023-08-23 10:25:42浏览次数:41  
标签:return 请求 signal options controller Fetch 超时 fetch

要实现基本的超时功能其实很简单,只需要使用 AbortController 这个 API,如果你不熟悉它,可以点击链接了解一下

/**
 * @description: 创建一个 fetch 函数
 * @param {*} timeout: 传入超时的时间
 * @return {*} 返回一个新的 fetch 函数
 */
function createFetch(timeout) {
  // 返回一个新的 fetch 函数
  return (resource, options) => {
    // 定义一个终止器
    let controller = new AbortController();
    // options 配置默认值
    options = options || {};
    // 向原来的 fetch 配置中加入 signal
    options.signal = controller.signal;
    setTimeout(() => {
      // 当时间到达之后运行 abort
      controller.abort();
    }, timeout);
    return fetch(resource, options);
  };
}
 
// 如果我们不想使用超时功能就可以直接使用 fetch
fetch();
 
// 如果我们想要使用超时功能就使用 createFetch 创建一个新的 fetch
createFetch(3000)("url", {});

标签:return,请求,signal,options,controller,Fetch,超时,fetch
From: https://www.cnblogs.com/tn666/p/17650487.html

相关文章

  • 达梦数据库锁超时问题
    出现问题原因:还有其他用户在进行增删改操作,可以通过查看阻塞会话。可以通过查杀阻塞会话后再进行删除表的操作。查询语句SELECT*FROMV$SESSIONSWHERESQL_TEXTLIKE'%tablename%'杀掉阻塞语句:sp_close_session(140217151795752);再次执行之前的sql语句,就可以成功执行了......
  • 闪现、请求扩展、g对象
    目录一闪现闪现示例分类放二请求扩展before_requestafter_requestbefore_first_requestteardown_requesterrorhandlertemplate_global全局标签template_filter全局过滤器三g对象四蓝图4.1使用蓝图4.2蓝图小型项目4.3蓝图大型项目五flask-session一闪现要求#一个请......
  • flask路由、模板、请求响应、session
    目录一路由系统1.1flask路由系统的参数1.2转换器(了解)1.3路由系统本质-->读源码1.4endpoint1.5flask写接口api二CBV2.2as_view源码三模板四请求响应五session一路由系统#1flask路由系统是基于装饰器的:参数如下#2转换器:#3路由系统本质#4endpoint不传会......
  • 记录--post为什么会发送两次请求?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助在前段时间的一次面试中,被问到了一个如标题这样的问题。要想好好地去回答这个问题,这里牵扯到的知识点也是比较多的。那么接下来这篇文章我们就一点一点开始引出这个问题。同源策略在浏览器中,内容是很开放的,任何......
  • OS(八):存储器管理之请求分页存储管理方式
    请求分页系统建立在基本分页基础上,为能支持存储器功能增加了请求调页和页面置换功能。页面作为调入和换出的基本单位。1、请求分页的硬件支持1.1、页表机制页表将用户地址空间中逻辑地址变换为内存空间的物理地址。只将部分应用程序调入内存,页表增加若干项,详情如......
  • OS(九):储存器管理之请求分段存储管理方式
    1、段表机制段表的段表项:存取方式:标识本分段的存储属性是只执行、只读、还是允许读/写;访问字段A:记录该段被访问的频繁程度;修改为M:该段在进入内存后是否已被修改过;存在为P:该段是否已调入内存;增补位:表示本段在运行过程中是否做过动态增长;外存始......
  • 微信_如何响应用户请求;
    <imgsrc=""alt=""/><?php/**第二十三小分队(23工作室)*感谢:方倍工作室;**CopyRight2014-05-30AllRightsReserved*///签名define("TOKEN","weixin");$wechatObj=newwechatCallback();//isset()检测变量是否设置;if(!i......
  • 静态web服务器-根据请求返回指定页面数据
    实现步骤1.获取用户请求资源的路径2.根据请求资源的路径,读取指定文件的数据 3.组装指定文件数据的响应报文,发送给浏览器 4.判断请求的文件在服务端不存在,组装404状态的响应报文,发送给浏览器 示例importsocket#获取用户请求资源的路径#根据请求资源的路径,读取指......
  • c2工具sliver的python客户端无法修改grpc超时时间的解决办法
    业务需要,调用了很多implants来执行对应系统上的命令,但是无论怎么指定interactive.py中execute方法参数,命令执行超时时间总是30.后面通过扩展execute方法增加一个grpc超时参数后解决;具体方法如下:asyncdefexecute_ex(self,exe:str,args:List[str],output:bool,tim......
  • axios如何取消请求,其原理是什么?
    axios可以通过创建一个CancelToken来取消一个请求,基本原理是:创建一个CancelToken的实例,它有一个executor函数,可以通过调用executor参数中的cancel函数来取消请求。在axios请求配置中指定cancelToken属性,将CancelToken实例传递进去。当我们需要取消请求时,调......