zoukankan      html  css  js  c++  java
  • 如何降低应用软件的bug

    1. 深层对象的读取,后端返回一个null导致前端报错

    //开发场景,有时后端接口返回的字段的数据为null,导致前端有时不能读取深度值
    let obj= {a:null}
    const { b } = obj.a // 对一个不存在的字段值继续取字段,导致报错
    • 解决方案:
    // 解决方案1, 增加default值 
    const { b } = obj.a || {}
    //解决方案2:
    function safeGet(run, defaultValue) { 
      try {
        return run()
      } catch(e){
        return defaultValue 
      } 
    }
    const { b } = saveGet(() => obj.a, {})

    2. 连续点击导致多次触发事件。

    // 增加防治措施,还要注意保证请求失败也要将接口放开,保证可以请求
    // 解决方案
    检测变量值是否是false, false则直接返回
    调用开始--->设一个变量值为false,接口返回则将变量重置为true。如果中途报错了或者参数不对也应该置位true

    3. 保存事件的参数,依赖其他接口返回数据。(弱网条件下,没拿到数据直接保存导致数据缺失报错。网络正常无问题

    // 如果这个接口返回的数据会影响到后续的执行, 那么这个接口调用必须加上loading

    4. url跳转传递的参数全是字符串, 其中(true, false, undefined, null)这些值都会变成字符串。不注意就很容易出bug

    // 解析的时候需要对此注意一下

    5.解构赋值如果这个字段不存在就会解构出undefined,如果将这个值作为请求参数的值会导致报错。如果没值应该传空字符串

    // 对封装的请求函数, 将传入的参数进行处理将undefined和null等值转空字符串
  • 相关阅读:
    JAVA学习日报 12/15
    JAVA学习日报 12/14
    JAVA学习日报 12/13
    如何在idea上配置meaven和tomcat!(idea2020)
    关于win10共存多个版本jdk,并如何进行最简单的切换
    Java面试知识点
    一些基本html标签的使用案例
    线性代数复习笔记
    考前加分项
    Javaweb学习12.18
  • 原文地址:https://www.cnblogs.com/jxjl/p/13723683.html
Copyright © 2011-2022 走看看