首页 > 其他分享 >前端实现轮询

前端实现轮询

时间:2023-09-05 18:03:59浏览次数:31  
标签:isStop pollManager 实现 轮询 stop start && 前端

/**
 *
 * @param callback 需要轮询的函数
 * @param interval 轮询的间隔时间
 * @returns
 */
export function pollFn(callback, interval = 1000) {
  let timerId;
  //是否停止轮询
  let isStop = false;
  //轮询请求
  const pollFetch = async () => {
    await callback();
    if (isStop) return;
    timerId = setTimeout(pollFetch, interval);
    return;
  };
  //开始轮询
  const start = async () => {
    await pollFetch();
  };
  //停止轮询
  const stop = () => {
    isStop = true;
    clearTimeout(timerId);
  };
  return {
    start,
    stop,
  };
}

  

//使用方法
mounted(){
 this.pollManager = pollFn(this.pollQuery, 5000 );
//开始轮询
 this.pollManager&&this.pollManager.start&&this.pollManager.start();
//7秒之后清楚轮询
setTimeout(()=>{
this.pollManager&&this.pollManager.stop&&this.pollManager.stop(); 
this.pollManager=null; },
7000) }
//http请求
async pollQuery(){
await new Promise((resolve, reject) => {
setTimeout(()=>{ resolve(true) },5000)
})
}

  

标签:isStop,pollManager,实现,轮询,stop,start,&&,前端
From: https://www.cnblogs.com/lvlvlv/p/17680362.html

相关文章

  • Web编辑器实现WORD粘贴图片自动上传
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@     page contentType="text/html;cha......
  • 批处理实现局域网连接打印机
     以下代码仅适用于连接其他主机上的打印机,需要知道主机的IP地址,用户名或者密码。为了方便可以共享的时候设置为空密码(策略设置那里要打开允许空密码登陆)这样就不用添加网络凭据了 @echooff::获取管理员身份%1mshtavbscript:CreateObject("Shell.Application").ShellE......
  • .NET6.0实现IOC容器
    .NET6.0实现IOC容器IOC的作用这里省略…只对如何使用进行说明。1.创建一个.NET6应用程序这里使用.NET6.0WebAPI应用2.声明接口publicinterfaceIAuthService{boolCheckToken();}3.实现接口classAuthServiceImpl:IAuthService{publi......
  • FCKEditor实现WORD粘贴公式自动上传
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘贴的原理,通过TheViper找到粘贴图片的方法。其原理为一下步骤:监听粘贴事件;【用于插入图片】获取光标位置;【......
  • 用递归和非递归两种方式实现二叉树的中序遍历
    一、分析中序遍历遍历顺序为:左、根、右。二、递归实现publicclassNode{ publicintvalue;publicNodeleft;publicNoderight;publicNode(intdata){ this.value=data;}}publicvoidinOrderRecur(Nodehead){ if(head==null){ return;}i......
  • 购物车的实现 前端按钮 , 一次就是加一次数量吧
    后端实现都是查询list集合,查询list集合条件是userID物品id,list集合其实查询出的就是一个 因为物品id是唯一的。。,另外思想有点像批量删除,和单个删除有点类似用in来实现 in里面传入的也是list集合,非常的类似看了淘宝,美团外卖,多多买菜的基本都是查询list  list搞定......
  • element table 表格控件实现单选功能
      <el-table:data="tableData"borderstriperef="tableData"@row-click="singleElection"><el-table-columnlabel=""width="65"><templateslot-scope="......
  • 前端 文件流下载blob
    1.axios请求携带 responseType:'blob'exportfunctiongetCreateReport(id){returnrequest({url:`${apiPrefix}/bus/proposal/evaluation/${id}`,method:'Get',responseType:'blob'})}2.编写下载方法//blob文件下载expor......
  • JavaScript之同站多域名共享Token实现方案
    背景由于公司业务涉及到多个国家,每个国家站的访问的域名不同(指向同一个Web服务)在站内能够切换不同的国家,服务端一个token支持所有国家鉴权此时需要前端将Token等相关信息共享到即将跳转到的新站点,因为不同域,浏览器不会共享Cookie方案将Token相关信息通过URLQuery......
  • dotnet6 C# 一个国内还能用的 NTP 时间校准客户端的实现
    本文来记录一个我自己在使用的NTP时间校准客户端的实现核心方法是在国内使用腾讯和阿里提供的NTP时间服务器来获取网络时间,如果连接不上,再依次换成国家服务器和中国授时服务,如果再连不上,那就换成微软自带的time.windows.com服务从NTP服务上获取当前的网络时间,可......