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 相关文章推荐
js 与或运算符 || &amp;&amp; 妙用
Dec 09 Javascript
IE iframe的onload方法分析小结
Jan 07 Javascript
jquery中实现标签切换效果的代码
Mar 01 Javascript
AngularJS基础知识笔记之表格
May 10 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
Sep 08 Javascript
Seajs是什么及sea.js 由来,特点以及优势
Oct 13 Javascript
安装Node.js并启动本地服务的操作教程
May 12 Javascript
详解如何在vue-cli中使用vuex
Aug 07 Javascript
vue移动端监听滚动条高度的实现方法
Sep 03 Javascript
详解Next.js页面渲染的优化方案
Jan 27 Javascript
vue实现路由懒加载及组件懒加载的方式
Jun 11 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程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
python实现简单socket通信的方法
2016/04/19 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
Django数据模型中on_delete使用详解
2020/11/30 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
志愿者宣传口号
2014/06/17 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
python删除csv文件的行列
2021/04/06 Python
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技
python数字图像处理之图像的批量处理
2022/06/28 Python