首页 > 其他分享 >点击识别按钮调用后端接口,中途按下结束识别,但是识别还是进行啦js

点击识别按钮调用后端接口,中途按下结束识别,但是识别还是进行啦js

时间:2024-08-15 14:26:57浏览次数:7  
标签:请求 cancelButton 点击 js abortController 按下 startButton startRecognition 识别

在JavaScript中,如果你想要在点击按钮后调用一个接口,并且在这个过程中按下一个按钮来中断或取消这个请求,你可以使用fetch API来发起请求,并使用AbortController来取消这个请求。以下是一个简单的例子:

// 获取按钮元素
const startButton = document.getElementById('startButton');
const cancelButton = document.getElementById('cancelButton');
 
// 当startButton被点击时,调用startRecognition函数
startButton.addEventListener('click', startRecognition);
 
// 存储fetch请求的signal,以便能够在需要时取消它
let abortController = null;
 
function startRecognition() {
  // 移除按钮点击事件监听器,防止重复触发
  startButton.removeEventListener('click', startRecognition);
  
  // 创建一个新的AbortController
  abortController = new AbortController();
 
  // 发起接口请求
  fetch('your-backend-api-url', {
    signal: abortController.signal,
    method: 'POST', // 根据需要使用POST或GET等
    // 其他配置...
  })
  .then(response => {
    // 处理响应
  })
  .catch(error => {
    if (error.name !== 'AbortError') {
      // 如果错误不是由于取消请求而发生的,则处理错误
    }
  });
 
  // 当cancelButton被点击时,取消请求
  cancelButton.addEventListener('click', () => {
    abortController.abort(); // 中断请求
  });
}

在这个例子中,当用户点击startButton后,startRecognition函数会被触发,并开始调用后端接口。同时,移除startButton的点击事件监听器,防止在请求期间重复触发。当用户点击cancelButton时,会调用abortController.abort()方法,这会抛出一个AbortError异常,中断当前的fetch请求。这样就可以在不完成请求的情况下终止请求过程。

标签:请求,cancelButton,点击,js,abortController,按下,startButton,startRecognition,识别
From: https://www.cnblogs.com/baozhengrui/p/18360845

相关文章

  • 身份证OCR识别接口如何用Java调用
    一、什么是身份证OCR识别接口?身份证OCR识别接口又叫身份证识别,身份证图像识别,身份证文字识别,即自动识别和提取身份证上的文字和数字信息。它可以通过图像处理和模式识别算法,将身份证中的姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限等关键信息准确地提取......
  • windows-g下载js库使用时报错:无法加载文件 D:\code\node\node_global\create-reac
    无法加载文件D:\code\node\node_global\create-react-app.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅https:/go.microsoft.com/fwlink/?LinkID=135170中的about_Execution_Policies。当我们在windows上-g(全局)安装一个js库时,执行会报这个错误,然后我们看......
  • Flutter项目移动端SQLite升级指南:解决json_extract函数缺失问题
    引言在Flutter移动端项目中依赖于SQLite的高级功能(如json_extract),在低版本的Android系统上部署时,可能会遇到函数不支持的问题。本文将指导你如何通过升级项目中使用的SQLite版本来解决这一问题。前置条件Flutter项目使用sqflite:^2.3.3+1进行SQLite数据库操作。IMBoyA......
  • <数据集>安全帽和安全背心识别数据集<目标检测>
    数据集格式:VOC+YOLO格式图片数量:22141张标注数量(xml文件个数):22141标注数量(txt文件个数):22141标注类别数:3标注类别名称:['helmet','vest','head']序号类别名称图片数框数1helmet15937572402vest394281313head7235124341使用标注工具:labelImg标注规则:对类别进行画水......
  • js异步之Promise使用
    Promise是异步编程的一种解决方案,是一个对象,可以获取异步操作的消息,大大改善了异步编程的困难,避免了回调地狱,比传统的解决方案回调函数和事件更合理和更强大。从语法上讲,Promise是一个对象,它可以获取异步操作的消息。提供了一个统一的API,各种异步操作都可以用同样的方法进行处理......
  • 识别格子内是否存在芯片(转)
    来源:https://www.cnblogs.com/LearningC/p/15870948.html 代码流程使用edges_sub_pix(Image,Edges,'canny',10,20,40),获取黑白之间的边缘线条轮廓转区域根据边长和面积select_shape_xld(Edges,SelectedXLD,['rect2_len1','area'],'and',[70,1800......
  • 【Three.JS零基础入门教程】第四篇:基础变换
    前期回顾:【Three.JS零基础入门教程】第一篇:搭建开发环境【Three.JS零基础入门教程】第二篇:起步案例【Three.JS零基础入门教程】第三篇:开发辅助接下来,我们通过三种基础的变换来加深对3D坐标系中坐标和单位的理解,同时也是动画的基础.分别是:移动缩放旋转效果1......
  • 基于SpringBoot+MySQL+SSM+Vue.js的药房药品采购系统(附论文)
    获取见最下方名片获取见最下方名片获取见最下方名片演示视频技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基于SpringBoot+MySQL+SSM+Vue.js的药房药品采购系统(附论文......
  • 基于SpringBoot+MySQL+SSM+Vue.js的旅游咨询系统
    获取见最下方名片获取见最下方名片获取见最下方名片演示视频技术描述开发工具:Idea/Eclipse数据库:MySQLJar包仓库:Maven前端框架:Vue/ElementUI后端框架:Spring+SpringMVC+Mybatis+SpringBoot文字描述基于SpringBoot+MySQL+SSM+Vue.js的旅游咨询系统,用户,管理......
  • JS脚本内追加的标签无法触发事件问题处理
    通过JS追加的标签无法触发事件时,就把事件挂载给这个标签父级标签,如下。//后追加标签事件不生效,挂载在父级标签varparentElement=document.getElementById('layout_detail_toolbar_0');parentElement.addEventListener('change',function(event){letta......