vue实现在一个方法执行完后执行另一个方法的示例


Posted in Javascript onAugust 25, 2018

用Promise来实现

function2(){
  // 你的逻辑代码 
  return Promise.resolve(/* 这里是需要返回的数据*/)
}

function3(){
  // 你的逻辑代码 
  return Promise.resolve(/* 这里是需要返回的数据*/)
}

// 调用
function1(){
  this.function2().then(val => { 
    this.function3();
  });
}

拓展知识:vue解决一个方法同时发送多个请求的问题

在项目开发过程中,让人抓狂之一的问题就是一个点击事件,当快速点击的时候,它会重复发送多个请求。这是不允许出现的。

但是怎么解决这个问题呢?

一般处理方法,就是点击的时候,立刻将该按钮disabled,这样就可以避免重复发送请求了。但是我发现这个有一个弊端,那就是:

如果,该事件有许多的验证,比如电话、邮箱格式是否正确呀,必填的是否填了呀等等。一旦你点击就把按钮disabled了,发现该填的没填,回去填完后发现按钮不能点了?那是因为刚才点击的时候被你disabled了,所以还得在验证的方法中取消按钮的disable。就造成了你点击的时候,第一步,将按钮disable了,然后一步一步向下验证,如果验证出错,得取消disable,当所有验证通过了,在请求的回调函数中,成功了也要取消disable,失败了也要取消disable,因为失败了用户多半还会继续点两次,不取消disable会让用户发现怎么点不了了。这就造成了全篇都是按钮disable的设置与取消。一旦有修改,很难维护的。

在vue中,有一个lodash,我们只需引入就可以使用了。

比如以下代码:

<template>
 <div>
  <div class="bindBtn">
   <button class="bindDataBtn" @click="postAction">提交</button>
  </div>
 </div>
</template>
<script>
import _ from 'lodash'
export default {
 data() {
  return {
  
  }
 },
 mounted() {
 
 },
 methods: {
  sendAjax(){
   /*这里是请求的接口、参数以及回调函数等*/
  },
  postAction(){
   this.doPostAction()
  }
 },
 created(){
  this.doPostAction = _.debounce(this.sendAjax,500);
 }
}
</script>

我们首先将发送请求的ajax方法写在一个函数里面,在这里就是sendAjax函数,其次,我们引入lodash,然后将sendAjax这个函数用一个方法自定义一下,在这里就是doPostAction,其中_是我们引入的lodash,_.debounce是一个限制操作频率的函数,里面的是500是毫秒单位。

当执行点击事件的时候,也就是postAction函数,我们只需要调用doPostAction这个函数就可以了,而那个500的功能就是你在这个时间段里,无论执行了多少次这个点击事件,它都只会执行一次。

这样就少了我们通篇disable来disable去

最后附上官网例子:点击前往

以上这篇vue实现在一个方法执行完后执行另一个方法的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
HTML中Select不用Disabled实现ReadOnly的效果
Apr 07 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
May 06 Javascript
jquery 查找iframe父级页面元素的实现代码
Aug 28 Javascript
对于this和$(this)的个人理解
Sep 08 Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 Javascript
Js制作点击输入框时默认文字消失的效果
Sep 05 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
javaScript基础详解
Jan 19 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
原生js实现抽奖小游戏
Jun 27 Javascript
JavaScript代码简化技巧实例解析
Sep 09 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
Aug 25 #Javascript
对Vue beforeRouteEnter 的next执行时机详解
Aug 25 #Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
Aug 25 #Javascript
Vue中div contenteditable 的光标定位方法
Aug 25 #Javascript
Vue中mintui的field实现blur和focus事件的方法
Aug 25 #Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
Aug 25 #Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 #Javascript
You might like
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
php 分库分表hash算法
2009/11/12 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
php实现简单文件下载的方法
2015/01/30 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
python实现查询IP地址所在地
2015/03/29 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python绘制漏斗图步骤详解
2019/03/04 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
给原生html中添加水印遮罩层的实现示例
2021/04/02 Javascript
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
nginx日志格式分析和修改
2022/04/28 Servers