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

相关文章

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

MySQL中SQL的执行顺序详解

《MySQL中SQL的执行顺序详解》:本文主要介绍MySQL中SQL的执行顺序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql中SQL的执行顺序SQL执行顺序MySQL的执行顺序SELECT语句定义SELECT语句执行顺序总结MySQL中SQL的执行顺序

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf