精华内容
下载资源
问答
  • vue 如何封装try catch

    2021-01-08 13:47:35
    const encapsulation = function (method) { try { //调用encapsulation这个方法时...很多try catch的代码看起来很乱,想着怎么把try catch封装,然后调用这个封装后的方法,把函数或者代码传入encapsulation这个方.
    const encapsulation = function (method) {
      try {
        //调用encapsulation这个方法时传入方法或函数会执行在这里
      } catch (error) {
        return
      }
    }

    理想效果是可以调用异步接口

    encapsulatio(await editUser(data))

    很多try catch的代码看起来很乱,想着怎么把try catch封装,然后调用这个封装后的方法,把函数或者代码传入encapsulation这个方法后,能在try里执行

    我表达的可能不是很清晰,在这里先感谢各位大神们的解答了,小弟感激不尽!http://groups.tianya.cn/post-235332-beeea2a8172f4475a11046dfd9fa7878-1.shtml
    http://groups.tianya.cn/post-235332-40dfbe61c300494e83efd39cdd7c9688-1.shtml
    http://groups.tianya.cn/post-235332-293ff0bd1c994d0db21c8ce5b4670f77-1.shtml
    http://groups.tianya.cn/post-235332-58a41404e7cb4ffab9ff71bb33b38c5b-1.shtml
    http://groups.tianya.cn/post-235332-6c078c1d7c864a54a555449c400e49fa-1.shtml
    http://groups.tianya.cn/post-235332-9de9c80a27814d9e82d883080f1c3992-1.shtml
    http://groups.tianya.cn/post-235332-a39a08410b2e44429f060550168da6a9-1.shtml
    http://groups.tianya.cn/post-235332-3928692897e849139fda55d960f41318-1.shtml
    http://groups.tianya.cn/post-235332-d4b24659ed2e4551a63f27761c7a0667-1.shtml
    http://groups.tianya.cn/post-235332-61b98d04aca94640a1f2b53690537862-1.shtml
    http://groups.tianya.cn/post-235332-305bb08a97704f0ab23a1e6bbc2eabf6-1.shtml
    http://groups.tianya.cn/post-235332-4fb75a40e5a740a8bf3e1a797df30c4d-1.shtml
    http://groups.tianya.cn/post-235332-f3619dbc3d5e4309900d4a0d19fb6c38-1.shtml
    http://groups.tianya.cn/post-235332-54a0b7e4fc7048398cd3655ce987120a-1.shtml
    http://groups.tianya.cn/post-235332-33de1529a0f540ec9a54101b3dc55fe2-1.shtml
    http://groups.tianya.cn/post-235332-70d8ecb43757400ba5dc42a35c0899be-1.shtml
    http://groups.tianya.cn/post-235332-667e31705f434758bb00325adf870e12-1.shtml
    http://groups.tianya.cn/post-235332-8c92eb9096fe4aa78d64d135181bdab4-1.shtml
    http://groups.tianya.cn/post-235332-fe6bfe4d2e5041deabc6eb63f1b2bb59-1.shtml
    http://groups.tianya.cn/post-235332-9b8b9448908d4ff29710816b76990dd7-1.shtml
    http://groups.tianya.cn/post-235332-9d0c547d9cbb483c941f2e327b9cceba-1.shtml
    http://groups.tianya.cn/post-235332-f5c56046d02b45eca07b43e614772e36-1.shtml
    http://groups.tianya.cn/post-235332-8c3e35d9926141a08131f802f68c4f34-1.shtml
    http://groups.tianya.cn/post-235332-720d8bcfd2bc49c0b05eef3f00720349-1.shtml
    http://groups.tianya.cn/post-235332-6a8f3f03ed664c10b12797745e4a382b-1.shtml
    http://groups.tianya.cn/post-235332-970631401ba04fa483700d4626e3bd48-1.shtml
    http://groups.tianya.cn/post-235332-a8847ee792f04f39b7997d9aa30eb554-1.shtml
    http://groups.tianya.cn/post-235332-94c8c806f7c54a8bb7ac414def0ca167-1.shtml
    http://groups.tianya.cn/post-235332-bba0bb52418b41baaf18bca798436f44-1.shtml
    http://groups.tianya.cn/post-235332-f50d3ba1d68e4ac6ac8742a6aeab3e45-1.shtml
    http://groups.tianya.cn/post-235332-ca3d8ab7589f493493df9251b4a94d42-1.shtml
    http://groups.tianya.cn/post-235332-dc2e7336f78c4e71966cf3575487859a-1.shtml
    http://groups.tianya.cn/post-235332-4db3bbdb822841f2b5765f621e56c143-1.shtml
    http://groups.tianya.cn/post-235332-351c36f24bc145a0b3cb1a6307381021-1.shtml
    http://groups.tianya.cn/post-235332-c6b32b22834042a2910f8a8f41b73a7a-1.shtml
    http://groups.tianya.cn/post-235332-437acf7c6951400aa6dbf9be300f0669-1.shtml
    http://groups.tianya.cn/post-235332-5dcb76dc9e6d43fa998e73d1e7fc67b7-1.shtml
    http://groups.tianya.cn/post-235332-5ac2f0c5855845839225a7797f109394-1.shtml
    http://groups.tianya.cn/post-235332-7ee9b3e178e0461c89bace2af2716a2d-1.shtml
    http://groups.tianya.cn/post-235332-63c817fbf06948d6a90730467c7a9682-1.shtml
    http://groups.tianya.cn/post-235332-bdb0abdbf0e24526bf55137fc1287b92-1.shtml
    http://groups.tianya.cn/post-235332-a61e6e5bbff7427faf5a1730349bf341-1.shtml
    http://groups.tianya.cn/post-235332-b8ae88bd124645e9a49399ac5af82722-1.shtml
    http://groups.tianya.cn/post-235332-5f5fa105648b40b3a675d69bccd9f810-1.shtml
    http://groups.tianya.cn/post-235332-5047a6174dfd4a7dbfce6b7cf1b12533-1.shtml
    http://groups.tianya.cn/post-235332-7c632ba60da142868b39444edd3464a0-1.shtml
    http://groups.tianya.cn/post-235332-1c1c44af7fe24ce4b4c27076b0074b9a-1.shtml
    http://groups.tianya.cn/post-235332-b63355ac2a8648669a2855c101cc20f3-1.shtml
    http://groups.tianya.cn/post-235332-aebd607691e543609a1a797ed1f372b2-1.shtml
    http://groups.tianya.cn/post-235332-c150ef1173e34b2da54558e4aa9a5933-1.shtml
    http://groups.tianya.cn/post-235332-341d50aa1bd6442fb9ab411b4d4d7a69-1.shtml
    http://groups.tianya.cn/post-235332-e70556b5b25549d1a52d3458915b0de0-1.shtml
    http://groups.tianya.cn/post-235332-8b4ffdb38c044653a43ec39e5b62cc1a-1.shtml
    http://groups.tianya.cn/post-235332-57b2d2e8dce34c07a6c2554d1ecd3cbc-1.shtml
    http://groups.tianya.cn/post-235332-c58facd2aaf14077bbf088169df2f541-1.shtml
    http://groups.tianya.cn/post-235332-fd2586b198dd4e90b10c9438ce79eda2-1.shtml
    http://groups.tianya.cn/post-235332-2e380b0a13694b64b34507ff50400ed4-1.shtml
    http://groups.tianya.cn/post-235332-edf48049ce0e4d8ca167ca58facf51ed-1.shtml
    http://groups.tianya.cn/post-235332-cdabaae41bba46a290d081e86571fcab-1.shtml
    http://groups.tianya.cn/post-235332-5800eefd89f7441492784b13e2b734db-1.shtml
    http://groups.tianya.cn/post-235332-9131e56482334047a28375e93e494396-1.shtml
    http://groups.tianya.cn/post-235332-b188a37b1bf741a985a675536c2f05b3-1.shtml
    http://groups.tianya.cn/post-235332-fc6e98438f26438f92b35cfd7535967a-1.shtml
    http://groups.tianya.cn/post-235332-e117e3a0853840a69e1c10d4225b706d-1.shtml
    http://groups.tianya.cn/post-235332-442d17fd19714900b455c206c3ed0f91-1.shtml
    http://groups.tianya.cn/post-235332-7c1a71900dd64b70922bef1ef404dede-1.shtml
    http://groups.tianya.cn/post-235332-1fb44f67f071442f86f3ad575983e682-1.shtml
    http://groups.tianya.cn/post-235332-1aab62f99054400cbc2dbf62d78a4654-1.shtml
    http://groups.tianya.cn/post-235332-ffdc87108c4f40aa92a44428b8e37350-1.shtml

    展开全文
  • vuetry...catch的使用

    千次阅读 2020-10-26 19:13:35
    vuetrycatch的使用 try-catch主要用于进行异常处理; 1.防止因为错误而造成系统崩溃 在程序逻辑中, 需要在易出现问题的逻辑代码片段上, 加持try-catch方法, 这样做可以抛出错误, 但是不会影响整个程序运转; ...

    vue中try…catch的使用

          try-catch主要用于进行异常处理;
    
    1.防止因为错误而造成系统崩溃

    在程序逻辑中, 需要在易出现问题的逻辑代码片段上, 加持try-catch方法, 这样做可以抛出错误, 但是不会影响整个程序运转;

    try {
       // 你的逻辑代码
    } catch (e) {
       // 错误处理代码片段
    }
    
    展开全文
  • vue promise async-await try-catch 讲解 promise 异步函数 与 回调函数的说明 异步函数: 定时器setTimeout, ajax (异步函数的执行, 不会阻塞主线程代码的执行) 回调函数: 把一个函数当成参数传递, 将来特定的时机...

    vue promise async-await try-catch 讲解
    promise
    异步函数 与 回调函数的说明
    异步函数: 定时器setTimeout, ajax (异步函数的执行, 不会阻塞主线程代码的执行)
    回调函数:

    1. 把一个函数当成参数传递, 将来特定的时机调用, 这个函数就叫回调函数
    2. 什么时候会用到回调函数, 异步的时候 ajax success error
    console.log(1)
    setTimeout(function() {
      console.log(2)
      setTimeout(function() {
          console.log(4)
      }, 1000)  
      console.log(5)
    }, 1000)
    console.log(3)
    

    13254
    回调函数的问题:

    1. 回调函数的阅读性不好, 回调不会立马执行
    2. 回调函数如果有大量的嵌套, 可维护性差 (回调地狱)
      promise 就是为了解决回调函数嵌套的问题而存在的
      读取文件演示回调嵌套
      在这里插入图片描述
      这样读取的顺序是不一定的,和文件的大小,和计算机的性能都有关系
      在这里插入图片描述
      这样读取的顺序是一定的
      promise的基本认识
    // 1. 创建promise对象
    // 2. 使用promise对象
    
    const fs = require('fs')
    
    // promise承诺, 一般承诺的是将来的事情, 可能成功 也可能失败
    // 1. 创建
    const p = new Promise(function(resolve, reject) {
      // promise中一般封装一个异步的操作 比如: ajax, 读写文件
      // resolve 和 reject 都是 promise 给你提供好的函数
      // resolve是需要在成功的时候调用的函数
      // reject是需要在失败的时候调用的函数
      fs.readFile('a.txt', 'utf8', (err, data) => {
        if (err) {
          reject(err)
        } else {
          resolve(data)
        }
      })
    })
    
    // 2. 使用promise对象
    // axios({ .. }).then(成功的函数).catch(失败的函数)
    // p.then(成功的函数).catch(失败的函数)
    p.then(function(data) {
      console.log(data)
    }).catch(function(err) {
      console.log(err)
    })
    
    
    /* 
      promise:
        1. 创建promise对象
           resolve 是成功的时候, 需要调用的函数
           reject 是失败的时候, 需要调用的函数
    
           const p = new Promise(function(resolve, reject) {
              // 里面一般封装的是异步函数的处理
           })
    
        2. 使用promise对象
           p.then(成功的函数).catch(失败的函数)
    
    */
    

    promise的三个状态

    • pending: 等待 (进行中)
    • fulfilled: 成功 (已完成), 调用了 resolve, promise的状态就会被标记成成功
    • rejected: 失败 (拒绝), 调用了 reject, promise的状态就会被标记成失败
      小tips: promise的状态只能修改一次 一旦promise的状态发生变化, 状态就会被凝固
      利用promise解决回调嵌套的问题
      在这里插入图片描述
      宏任务,微任务
      宏任务: 主代码块, 定时器都属于宏任务
      微任务: 当前宏任务执行完,在下一个宏任务开始之前需要执行的任务
      (promise就属于微任务, 在下一个宏任务开始前, 先执行)
      async-await
      async-await存在的意义就是解决回调嵌套的问题
      可以大大的提升 promise 在使用时的可读性!!!
      在这里插入图片描述
      async会阻塞函数的执行,一直等到成功的结果!!!一个async 里面可以有多个await在这里插入图片描述
      await等待的是promise resolve 的结果 并不能等待reject 的结果 如果失败了会报错直接抛出错误,所以需要try catch 一波
      try catch
      捕获错误的语法
      try catch 并不是一定要在async await里面使用,哪里都可以使用
      打印出错误信息 可以更好的理解错误 进行调试
    try {
      // 尝试着去做的事情,执行的代码
    } catch (err) {
      //打印,尽量不要写空,哪怕就是两个斜线
      
    }
    

    try和不try的错误显示区别
    在这里插入图片描述
    在这里插入图片描述
    利用async和await对发送请求进行改造
    在这里插入图片描述
    axios.method(‘url’)在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 使用vue出现的bug和已经实现的功能 1.反复在公共组件中调用同一个component组件并且需要传值刷新时(就是路由地址不变,根据不同传值刷新) (1)引入一个utils.js内容如下 import Vue from 'vue' export default ...

    一.使用vue出现的bug和已经实现的功能
    1.反复在公共组件中调用同一个component组件并且需要传值刷新时(就是路由地址不变,根据不同传值刷新)
    (1)引入一个utils.js内容如下

    import Vue from 'vue'
    export default new Vue
    

    (2)在需要跳转的页面和公共页面引入utils

    import utils from '../../../Base/utils.js';
    

    (3)公共页面如下代码:

     this.$router.push({name: "operate", path: "/operate", params: {bh: row.bh}});//解决路由跳转问题operate是路由,bh: row.bh是需要穿的值可穿多个
    

    (4)刷新页面如下代码:

    		mounted(){///解决路由跳转问题
                utils.$on('operate',bh=>{
                    this.getTitleContentData(bh);//刷新页面的方法以及值
                });
            },
            
            beforeDestroy () {//防止累计请求次数主次增加
                utils.$off('operate')
            },
    

    2.socket在vue中全局使用(此处是借鉴网上一大佬的vue全局socket设置改装而成)
    (1)首先引入一个js文件如下:

    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex);
    
    export default new Vuex.Store({
        state: {
            websock: null,
            eventlist:[],
        },
        getters: {
            onEvent(state) {
                return function (a) {//触发回执事件
                    //console.log(state.eventlist.toString());
                    a=state.eventlist;
                    return a;
                }
            }
        },
        mutations: {
            WEBSOCKET_INIT(state,url) {
                state.websock = new WebSocket(url);
                state.websock.onopen = function () {
                    console.log("连接成功!");
                };
                state.websock.onmessage = function (callBack) {
                console.log("ws接收!");
                var datas=callBack.data;//接收到的后端信息
                var datasList=[];//分割后的集合
                datasList=datas.split('#');
                state.websock.onerror=function(e) { //错误
                    console.log("ws错误!");
                    console.log(e);
                };
                state.websock.onclose=function(e) { //关闭
                    console.log("ws关闭!");
                    console.log(e);
                };
                state.websock.binaryType = "arraybuffer";
                state.eventlist=datasList;
                }
            },
            WEBSOCKET_SEND(state, p) {
                console.log("ws发送!");
                console.log(JSON.stringify(p.data.msg));
                state.websock.send(JSON.stringify(p.data.msg));//发送消息
            }
        },
        actions: {
            WEBSOCKET_INIT({commit},url) {
                commit('WEBSOCKET_INIT',url)
            },
            WEBSOCKET_SEND({commit}, p) {
                p.type=3;
                commit('WEBSOCKET_SEND', p)
            }
        }
    })
    

    (2)在main.js中配置如下

    import websocket from './Base/webSocketStore.js'
    
    Vue.prototype.$websocket = websocket;
    

    (3)在登陆后初始化socket

    this.$websocket.dispatch('WEBSOCKET_INIT',"ws://localhost:8080/项目名/后台的socket地址");//基于http协议如果https需要换成wss开头且需要域名
    

    (4)调用后台像前台发送主动推送信息

    		computed:{
                alertCont() {//socket连接给socket连接事件加一个处理
                    return this.$websocket.getters.onEvent('ConnectByJson.C');
                }
            },
            watch: {
                alertCont: function (a) {//监听socket调用方法
                    if(a[0]=="netorder"){
                        this.getTitleContentData(a[1]);//此处调用刷新
                    }
                }
            },
    
    //像后端推送信息
    				var data = {//数据json对象
                        msg:12312312,
                    };
                    var method="proxy.ConnectByJson";
                    this.$websocket.dispatch("WEBSOCKET_SEND",{
                        method:method,
                        jsonData:jsonData,
                    });
    

    二.设置service手动回滚
    1.当多个mapper在service中被调用且在逻辑代码中trycatch的时候,我们需要手动回滚。因为该类的异常并没有抛出,就不是触发事务管理机制,只需在如下添加代码:

    try {
    			逻辑代码
    			if(a!=1||b!=1) {
    				return ReturnDataUtils.getFailCode(ErrorCodeUtil.NMOPT_DATAFAIL);
    			}
    			//这一行就是手动回滚的代码
    			WebSocketHandler.sendMessageToUsers(new TextMessage("netorder#"+bh+"#w"));
    		} catch (Exception e) {
    			e.printStackTrace();
    			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
    			return ReturnDataUtils.getFailCode(ErrorCodeUtil.NMOPT_OPERFAIL);
    		}
    

    如果你的service名称没有配到aop中可以在service中添加如下注释

    @Transactional(rollbackFor=Exception.class)//表示所有异常都会走事务
    
    展开全文
  • try/catch/finally

    2018-09-07 09:01:00
    最近再看一个vue项目源码时看到其中很多地方用到了trycatch,很多地方都有用到但不知道其作用是什么,今天经过查阅整理如下: try可以理解为代码的执行检测模块。再try中放置的代码一般会经过检测是否有异常错误...
  • 在使用vue,axios 链式操作时,then之后有catch,如果在catch里又重新调用里methds里面的函数,并且很不辛,你的函数有错,这是就会出现undefined,这时,就需要我们在函数体内部使用try catch。 ...
  • node -e "try{require('./postinstall')}catch(e){}" sh: node: 未找到命令 npm ERR! code ELIFECYCLE npm ERR! syscall spawn npm ERR! file sh npm ERR! errno ENOENT npm ERR! core-js@3.4.6 post...
  • <p><em>try { await this.competitorsService().update(this.competitor); } catch { this.savingError = true; }</em></p> <p>But the CATCH is not working, because the promise created in the Update ...
  • 要解决这个问题,可以使用 try-catch 来捕获错误 try-catch 的用法: try { // 可以会出错的代码 } catch (error) { // 如果出错,就执行 catch 中的代码, // 如果不出错,就不执行 catch 中的代码 // error: 指...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 330
精华内容 132
关键字:

catchtryvue

vue 订阅