美文网首页
ES7的decorator自动异常处理

ES7的decorator自动异常处理

作者: halapro_liu | 来源:发表于2020-06-14 23:46 被阅读0次

前言

异常处理作为每一个编程语言不可或缺的部分,是我们经常需要接触到的,在JS中常常需要重复编写try...catch内容,因此,我想到可以借助ES7中的Decorator来实现,就像JAVA中所说的面向切面编程。

实现方式

export default function log(options) {
  return function(target, key, descriptor) {
    const method = descriptor.value
    descriptor.value = async function() {
      let ret
      try {
        ret = await method.apply(this, arguments)
        if (ret && ret.indexOf('noBuried') > -1) {
          console.log('noBuried')
        } else {
          console.log('buried')
        }
      } catch (e) {
        console.log(e)
      }
      return ret
    }
  }
}

其中target为decorator对应的方法,key为监听的方法名,descriptor则是类似Object.defineProperty中的装饰器属性,如writeable,readable等。

相关文章

  • ES7的decorator自动异常处理

    前言 异常处理作为每一个编程语言不可或缺的部分,是我们经常需要接触到的,在JS中常常需要重复编写try...cat...

  • js修饰器

    一、什么是js修饰器 修饰器(Decorator)是ES7的一个提案,它是用于对类和类的方法进行处理的函数 二、使...

  • Callback Promise Generator Async

    根据笔者的项目经验,本文讲解了从函数回调,到 es7 规范的异常处理方式。异常处理的优雅性随着规范的进步越来越高,...

  • decorator使用&原理

    1、decorator decorator是一个函数,是es7点语法糖,可以作用于类、类属性、类方法。目前浏览器端...

  • NDK开发---C++学习(七):异常

    前言 C++的异常处理机制能够将异常检测与异常处理分离开来,当异常发生时,它能自动调用异常处理程序进行错误处理。把...

  • React Native 填坑大全(持续更新)

    1、引入mobx,支持ES7 decorator的报错问题 2、使用导航栏组件react-navigation,s...

  • ES7 decorator详解。

    装饰器 概念 装饰器是一种特殊类型的声明,他能够被附加到类声明,方法,属性或者参数上。可以修改类的行为。常见的装饰...

  • ReactNative使用mobx @observer装饰器报错

    要支持ES7 decorator属性,需要安装babel插件新版本RN使用babel@7.0+,要和老版本做区分 ...

  • 装饰器 Decorator

    许多面向对象的语言都有 装饰器(Decorator) 函数,用来修改类的行为。目前,这个方法已经被引入了 ES7,...

  • 简单理解 ES7 Decorator

    如何使用ES7 Decorator给你的游戏人物开挂? // 预告: 本文有点小难度,对js不太熟的人可能比较懵逼...

网友评论

      本文标题:ES7的decorator自动异常处理

      本文链接:https://www.haomeiwen.com/subject/xluqxktx.html