uniapp H5 touchstart执行完成并返回成功再执行touchend 失败则不执行touchend

2024-01-31 22:36

本文主要是介绍uniapp H5 touchstart执行完成并返回成功再执行touchend 失败则不执行touchend,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

uniapp H5 touchstart执行完成并返回成功再执行touchend 失败则不执行touchend

  1. 直接上代码
<tmmplate>// 只绑定 touchstart 事件<view class="mp_yun_item"><view class="mp-ptz-btn mp-yun-top" @touchstart="yunControl"></view><view class="mp-ptz-btn mp-yun-right" @touchstart="yunControl"></view><view class="mp-ptz-btn mp-yun-bottom" @touchstart="yunControl"></view><view class="mp-ptz-btn mp-yun-left" @touchstart="yunControl"></view></view>
</template><script>
export default {data (){return {robotId:"",isfirst:true,loadingHide:false}},methods:{//云台控制开始yunControl() {let that = this;// 第一个方法的代码let params = {robotId: this.robotId,action: 'move',action_params: {},}// 声明 p 接受一个promise 异步函数 let p = new Promise((resolve, reject) => {// 此处调用 touchstart 触发的接口FridApi.setPtzAction(params).then((result) => {const res = resultif (res && res.code === 0) {this.isfirst = true// 成功后抛出resolve();} else {this.$refs.uToast.show({message: res?.msg || "云台操作失败",duration: 1000,})}}).finally(() => {this.loading = false})});// 监听 touchend 鼠标抬起事件 window.addEventListener("touchend", (event) => {// p 函数的成功回调p.then(value => {// 在 p 函数的 成功回调中再调用  touchend 鼠标抬起事件 this.yunControlEnd(params)})}, {once: true});},//云台控制结束  该方法为抬起事件的 执行接口yunControlEnd(params) {this.loadingHide = true// 调用接口FridApi.setPtzAction(params).then((result) => {const res = resultthis.loadingHide = falseif (res && res.code === 0) {} else {this.$refs.uToast.show({message: res?.msg || "云台操作失败",duration: 1000,})// 如果抬起事件执行失败 就再执行一次if (this.isfirst) {this.isfirst = false;this.yunControlEnd(params)}}}).finally(() => {this.loadingHide = false})},}
}
</script>
  1. 完成! (日常记录)

这篇关于uniapp H5 touchstart执行完成并返回成功再执行touchend 失败则不执行touchend的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/665266

相关文章

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

基于Spring实现自定义错误信息返回详解

《基于Spring实现自定义错误信息返回详解》这篇文章主要为大家详细介绍了如何基于Spring实现自定义错误信息返回效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景目标实现产出背景Spring 提供了 @RestConChina编程trollerAdvice 用来实现 HTT

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

springMVC返回Http响应的实现

《springMVC返回Http响应的实现》本文主要介绍了在SpringBoot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,... 目录一、返回页面二、@Controller和@ResponseBody与RestController

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英