zoukankan      html  css  js  c++  java
  • 同一个接口同时调用两次其中一个不生效?

    在工作中有时候会遇到这样的需求一个页面有多个区域,每个区域根据不同的条件去后台查同一个接口。

    当我调用此接口两次的时候,其中一个是不会生效的,甚至network中你会发现只发了一次请求,

    后来我试了一下调第二个方法的时候放在setimeOut中,时间是1000ms问题解决,但是改成100,接口会报错(cancel)后台没有任何的响应不知道状态码,个人猜测是浏览机制引起的。

    也想过在第一次接口请求成功后在调一次该接口。这样写不优雅 回到地狱比较low。

    后来我换成了async await的方式解决了该问题

    watch: {
        'qualityModel.modelCode': {
          async handler(val) {
            this.modelCode = '';
            this.uniqueConstList = [];
            this.connConstList = [];
            this.uniqueConst.removeAll;
            this.connConst.removeAll;
            if (val) {
              this.modelCode = val;
              await this.getUniqueConstList();
              await this.getConnConstList();
            }
          },
          deep: true
        }
    methods:{
     // 获取所有唯一约束
        async getUniqueConstList() {
          let param = { modelCode: this.modelCode, type: '0' };
          let response = await Rule.getConstraintList(param, 0);
          response.data.forEach(item => {
            item.check = false;
            item.constraintCheckRemindLimit = 30;
            item.constraintCheckWarnLimit = 50;
            this.qualityModelConstEntityList.forEach(ids => {
              if (ids.constId === item.id) {
                item.check = true;
                item.constraintCheckRemindLimit = Number(
                  ids.constraintCheckRemindLimit
                );
                item.constraintCheckWarnLimit = Number(
                  ids.constraintCheckWarnLimit
                );
              }
            });
          });
          this.uniqueConstList = response.data;
        },
     // 获取所有关联约束
        async getConnConstList() {
          let param = { modelCode: this.modelCode, type: '1' };
          let response = await Rule.getConstraintList(param, 0);
          response.data.forEach(item => {
            item.check = false;
            item.constraintCheckRemindLimit = 30;w
            item.constraintCheckWarnLimit = 50;
            this.qualityModelConstEntityList.forEach(ids => {
              if (ids.constId === item.id) {
                item.check = true;
                item.constraintCheckRemindLimit = Number(
                  ids.constraintCheckRemindLimit
                );
                item.constraintCheckWarnLimit = Number(
                  ids.constraintCheckWarnLimit
                );
              }
            });
          });
          this.connConstList = response.data;
        }
    }
    

      

    具体的async await代码贴上

  • 相关阅读:
    PHP工程师学Python数据类型
    通过PHP与Python代码对比浅析语法差异
    “adobe premiere中画面和声音不同步” 解决方法
    Web安全之XSS Platform搭建及使用实践
    使用docker快速搭建Permeate渗透测试系统实践
    Web安全开发规范手册V1.0
    遭受刷验证码攻击后的企安建设规划感想
    基于Docker搭建Jumpserver堡垒机操作实践
    使用PHP结合Ffmpeg快速搭建流媒体服务实践
    通过代码审计找出网站中的XSS漏洞实战(三)
  • 原文地址:https://www.cnblogs.com/tw6668/p/13321498.html
Copyright © 2011-2022 走看看