• 同一个接口同时调用两次其中一个不生效?


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

    当我调用此接口两次的时候,其中一个是不会生效的,甚至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代码贴上

  • 相关阅读:
    【重磅】FineUIPro基础版免费,是时候和ExtJS说再见了!
    【续】抓个Firefox的小辫子,jQuery表示不背这黑锅,Chrome,Edge,IE8-11继续围观中
    FineUICore已发布,跨平台速度快(现在可申请试用)!
    【原创】抓个Firefox的小辫子,围观群众有:Chrome、Edge、IE8-11
    快了快了,你的 MacBook Pro 和 FineUICore!
    [ASP.NET Core 2.0 前方速报]Core 2.0.3 已经支持引用第三方程序集了
    [译]ASP.NET Core 2.0 区域
    [译]ASP.NET Core 2.0 视图组件
    [译]ASP.NET Core 2.0 部分视图
    [译]ASP.NET Core 2.0 布局页面
  • 原文地址:https://www.cnblogs.com/tw6668/p/13321498.html
Copyright © 2020-2023  润新知