vue中异步遇到到的坑(解决axiso异步执行问题)

RC电路(一):微分|积分 的取值不同,会导致输出波形和输入波形之间的关系也不同,由此也会产生不同的应用。输出为0,随着电容充满电,运放-输入端得到的分压为正最大值,可等效成一个电压源,且电压不可突变,此时电流反向为最大值,开始充电时的容抗为0,电压不可突变则电压差为0,运放。开始充电时的容抗为0,电压不可突变则电压差为0,运放。输入端得到的分压也不可突变,随着电容放完电,于是。,因电容上电压不能突变(来不及充电,相当于短路,由上分析可得积分运算电路中,输出为运放的负最大峰值,随着电容充满电,输出为运放的正最大峰值,随着电容放完电, 阅读详情

项目中出现一个接口不同界面反复调用的情况时候,通常呢都会去做一步分装,直接调用。

在这个过程中,就会出现一个坑,调用及执行了,导致封装方法中return的数据还没拿到,就已经执行。

下面看一下问题出现时的写法

去相应界面进行调用

此时的结果是拿不到值。

那么改如何解决这个问题,下面提供了两种方式进行封装代码。去相应界面调用的方法是一样的。

方式一: 用Promise

export function getSelectData (data){
  let obj = new Promise(function(resolve, reject){
    if(resolve){
      axios({
        url: data == 'college' ?  API.getCollegeData : API.getCompanyData,
        method: 'get',
      }).then(res => {
        if (res.data.code === '200') {
          let arr = []
          for(let it of res.data.data){
            if(data=='college'){
              arr.push({ 'label': it.college,'value':it.id })
            }else{
              arr.push({ 'label': it.companyName,'value':it.id })
            }
            resolve(arr)
          }
        } else if (res.data.code === '500') {
          this.$notify({
            message: res.data.message,
            type: 'error'
          })
        }
      }).catch(error => {
        throw error
      })
    }
  })
  return obj
}

方式二: async await

export async function getSelectData (data){
  let obj = []
  await axios({
    url: data == 'college' ?  API.getCollegeData : API.getCompanyData,
    method: 'get',
  }).then(res => {
    if (res.data.code === '200') {
      for(let it of res.data.data){
        if(data=='college'){
          obj.push({ 'label': it.college,'value':it.id })
        }else{
          obj.push({ 'label': it.companyName,'value':it.id })
        }
      }
      console.log(obj,data)
    } else if (res.data.code === '500') {
      this.$notify({
        message: res.data.message,
        type: 'error'
      })
    }
  }).catch(error => {
    throw error
  })
  return obj
}

此时再相应界面打印 console.log(getSelectData('college'),111),得到的是

就拿去到值了。此时我们需要用.then来取值,去相应界面进行调用。

getSelectData('college').then((res)=>{
  this.collogeOptions = res
})
基于STM32的智能婴儿床控制系统设计(手机APP+蓝牙无线控制)(210) 项目充分运用先进的嵌入式技术和物联网理念,打造出一款集安全性、便利性、舒适性于一体的智能婴儿床控制系统,旨在减轻育儿负担,提高育儿效率,保障婴幼儿健康成长,满足现代家庭对高品质育儿生活的追求。 阅读详情

相关推荐

堆内存管理核心逻辑 超详细复习笔记

本文详细解析了堆内存管理的核心逻辑,包括初始化、分配和释放三个关键环节。系统通过全局堆管理结构体和链表机制实现动态内存管理:初始化时标记整块内存为空闲;分配时遍历链表查找合适空闲块并进行分割;释放时定位内存块头并重新标记为空闲,支持相邻块合并以减少碎片。文章对比了链表式管理和线性分配的优缺点,指出链表式更灵活但实现复杂,线性分配简单但无法释放。最后总结了常见错误(如指针回推错误、碎片问题)和扩展知识(不同内存管理算法)。这套机制是理解嵌入式系统和RTOS内存管理的基础。

2502_92009732的博客 1201

Vue(九):ES6模块化与异步编程高级用法

目录 一、ES6模块化 1.1 node.js的模块化 1.2 前端模块化规范的分类 1.3 ES6模块化 1.4 在node.js中体验ES6模块化 1.5 ES6模块化的基本语法 1.5.1默认导出与默认导入 1.5.2 按需导出与按需导入 1.5.3直接导入并执行模块中的代码 二、Promise 2.1 回调地狱 2.2 Promise的基本概念 2.3 基于Promise读取文件内容 2.3.1 基于回调函数按顺序读取文件内容(存在回调地狱的问题) 2.3.2 基于..

baiduwenku112的博客 4305

Python Trimesh库实战:5分钟搞定STL文件解析与3D模型可视化

本文介绍了如何使用Python的Trimesh库快速解析STL文件并进行3D模型可视化。通过简洁的代码示例,演示了从环境搭建、模型加载、几何数据提取到基础变换和批量处理的核心流程,帮助开发者和工程师在5分钟内高效完成3D数据处理与可视化任务。

weixin_32005771的博客 160

vue中Promise和async await的实际运用

原因是这样的。在vue文件中 当时想着很多页面公用一个方法,并且实行多元化使用。 在抽取方法的同时,在最后返回到页面上时,出现了console.log有值,但是页面上却没有的现象,所以判断出是同步异步的问题 API数据 import fetch from '@/utils/fetch' // 获取Section export function getSection(id,lcid) ...

qq_41022291的博客 1762

YOLO11实战 第010期-基于yolo11的农业杂草作物目标检测实战文档(详细教程)

通过这条曲线,用户可以评估模型的检测能力,分析模型在不同阈值下对真实目标的检测是否全面。通过这条曲线,可以评估模型在目标检测任务中的整体性能,并找到合适的置信度阈值,以在精确率和召回率之间做出最佳平衡。PR 曲线越接近右上角,模型性能越好,曲线下方的面积越大,说明模型在不同置信度下的。),它展示了不同置信度下的召回率。条曲线都显示了随着召回率的增加,精确度略有下降的趋势,但整体上精确度保持在很高的水平。通过这条曲线,可以选择合适的置信度阈值,以优化模型的检测结果,平衡精确率和召回率。反映了分类器的准确性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 1522

EG2134驱动芯片实战:如何用TSSOP20封装搞定三相无刷电机驱动(附电路图)

本文详细介绍了EG2134驱动芯片在三相无刷电机驱动中的应用实践,包括芯片选型、电路设计和PCB布局技巧。EG2134作为一款高性能半桥驱动芯片,采用TSSOP20封装,适合紧凑型设计。文章还提供了典型应用电路图和调试指南,帮助工程师快速实现稳定可靠的电机驱动方案。

d3e4f的博客 308

export async/await 的实践

之前在使用axios的时候都是封装成async/await的形式去调用, 《react axios的使用 封装async/await》 《vue 开发axios的封装async/await》。 下面的代码和上面的息息相关。 需求 现在遇见这个一个问题,就是有一个接口需要在很多和页面调用,涉及到多人开发,不可能每个人的页面都去写一次,那么这里就需要再次的封装一下了。 封装 新建一个testRequ...

小猿猪哥的博客 1万+

使用DrissionPage实现携程酒店信息智能爬取

本文介绍了一个基于DrissionPage技术的携程酒店信息爬虫系统,通过监听API数据包实现高效采集。系统可自动获取酒店名称、价格、评分、位置等15个维度的数据,支持多页滚动加载和智能去重。相比传统爬虫,该方法直接解析API返回的JSON数据,避免了复杂的HTML解析和加密参数分析,提高了开发效率和稳定性。文章详细阐述了13个关键实现步骤,并强调数据采集应严格遵守法律法规,仅用于技术学习和市场研究。该系统可为旅游决策、价格监测等提供数据支持,但需注意合理使用频率和隐私保护。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 389

vue中同步方法实现

有三种实现方式: 1、axios本身属于Promise,利用函数式的then获取请求返回结果,也是最常用的,如下: request({ url: '/test/XXX/XXXX', method: 'post', data: param }).then(ret => { if (ret.code === RESULT_CODE.SUCCESS) { this.$message.success('保存

masonqiang的博客 8793

第67步 时间序列建模实战:ARIMA建模(Stata)

第67步 时间序列建模实战:ARIMA建模(Stata)

Jet4505的博客 6821

小梅哥Xilinx ZYNQ学习笔记2——38译码器

译码器(Decoder)是一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等),功能与编码器相反。译码器一般分为通用译码器和数字显示译码器两大类。本设计的是通用译码器。三八译码器,即是 3 种输入状态翻译成 8 种输出状态。1.case开始开始,endcase结束;2.数字声明时,合法的基数格式有 4 中,包括:十进制('d 或 'D),十六进制('h 或 'H),二进制('b 或 'B),八进制('o 或 'O)。数值可指明位宽,也可不指明位宽。

m0_51430584的博客 1636

vue 中then后的返回值

Promise 中处理的是异步调用,异步调用是非阻塞式的,在调用的时候并不知道它什么时候结束,也就不会等到他返回一个有效数据之后再进行下一步处理 可以使用async和await来得到我们的返回值 在vue中的函数加上async async del(id){ var that=this var params={ ...

wzwzwz555的博客 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

如何使用axiso发出异步请求

1.停止启动的脚手架工程 命令行中执行 npm i axios -S。2.在main.js中导入。

weixin_41070431的博客 519

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Vue————axiso

同一套代码可以运行在浏览器 和 node.js 中)。1.localStorage setItem--存 getItem拿取 removeItem删除。3.cookies (1)有失效时间的 (2)存储大小4KB。本地存储(本地缓存)存放的位置在浏览器。(2)永久多不会删除,除非强制删除。创建后(可以读取到data中变量)(2)当关闭浏览器时就会失效。页面关闭时,进入的是销毁阶段。生命周期:指的是页面的阶段。挂载后(页面渲染全部完毕)(1)存储大小都是5MB。(1)存储大小都是5MB。

m_sd566655677的博客 366

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

5.Vue-axios异步的问题

axios 的执行方式 1:定义测试数据和方法。 <script src="js/vue.global.js"></script> <script src="js/axios.min.js"></script> <script> var vue = Vue.createApp({ data() { return { } }, created()

shejiataoBlog 642

vue异步数据 报错_vue异步axios获取的数据渲染到页面的方法

我们在vue,数据很多事异步获取来的,如果在template直接使用,会报错,undefined。因为先渲染后得到的数据,那如何才能不报错呢?computed!!!举个例子index.vue忽略坑人的传参方式。。。created(){this.init()this.axios.post('/wanwei/appserver/eqinfo/eqbaseinfo?reqjson={"eq_code":...

weixin_39658726的博客 701

vue 请求数据错误避免

在项目中,axiso请求,出现几种错误显示问题 1.超时请求时原始数据必须清空,否则会以为已经查询出来 2.重复按钮点击问题,宁可第二次不给他点击,原因axiso请求是异步,如果两次请求时间第一次大于第二次,导致第一次数据覆盖第二次,显示数据错误., 解决:赋值时间戳,判断两次时间戳是否相同,只取最后一次数据. let sch = new Date().getTime(); this.sch = sch; //请求 (body=>{ if(sch == this.sch){

晨曦的博客 1400

vue中ajax同步_Vue生命周期内发起ajax请求,因为请求异步性,并且生命周期函数也是异步的,导致子组件获取结果滞后,如果才能保证同步?...

1、项目有这样的需求、或者是设计吧。项目在浏览器一打开,初始化时需要向服务端发起请求,获取初始化参数,而这些参数需要在所有的子模块(组件)中需要用到。2、现在的实现思路是在main.js中,在created钩子函数发起请求,将结果存放在vuex中用于各个模块共享。其他子模块在mounted钩子函数中拿取vuex中的参数,再进行其他处理。各个模块通过路由链接。但是因为axios请求的异步性,导致子组...

weixin_30750349的博客 416

前后端连接(springboot+vue)--项目阶段3

本文详细讲解了Java的springboot项目的创建到mysql数据库和表的创建,并使用nybatis-plus实现了后端对数据库的增删改查,然后创建前端vue页面,使前后端能连接起来,他们连接起来是通过axios去连接的。vue使用的是饿了么ui的组件去完成的,通过异步请求的方式,不浪费资源。文章的后端页面还有视频可以看,是比较适合小白的一个教程

快乐学习 2万+

Vuejs学习七:vuex、axios

vuex、axios 1 Vuex 针对Vue.js应用程序开发的状态管理模式,说白了就是:组件之间有些状态(简单理解为变量变量)希望互相共享,如果按照原来的父子组件传递,那就很麻烦,于是状态管理工具就应运而生。 Vuex就是组件共享数据的管家,放进去的状态是响应式的。 1.1 简单使用 安装vuex后会出来一个store文件夹,里面的index.js import Vue from 'vue...

qq_28471889的博客 238

axiso响应数据赋值给data中的变量

<script> new Vue({ // 3.绑定视图 el: "#div", // 4.传递数据 data: { msg: "Hello Vue", tableData: [] }, methods: { getTableData() { var that=this axios.get('http://mkgo.xyz:8080/medalsInfo')

qq_40850266的博客 678

浅谈 axios 在 vue 中的使用方法

axiso是一个基于 promise 的 HTTP 库。相比AJAX,他有着丰富的API,更易于使用。那他与AJAX有什么样的区别呢?在vue中如何使用?其拦截器又是什么呢?

Jay的博客 548

vue相关面试题整理(仅供参考!!!)

目录:一、vue双向数据绑定原理二、组建中data为什么是个函数三、v-if和v-show的区别四、v-if和v-for的优先级五、 v-for中的key值的作用六、 修改数据页面不更新的原因和解决方案七、$nextTick八、vue-router钩子函数和执行顺序 一、vue双向数据绑定原理 vue.js是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图 二

weixin_48009560的博客 445

Vue与elementUi联合使用

(1)vue支持elementUI的组建 ​​​​​​Element - The world's most popular Vue UI framework (2)如何在代码中引入elementUI npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用。 npm i element-ui -S ¶CDN 目前可以通过 unpkg.com/element-ui 获取到最新版本的资源,在页面上引入 js 和 css 文件即可开始使用。 <!-- 引入样式

红豆和绿豆的博客 5908

vue axios封装以及数据交互,vue封装axios全局使用

以下为的内容:varaxios=require('axios')//配置项目根如路径varroot='http://localhost:8090/manage'//axios请求functionhttpApi(method,url,params){returnnewPromise((resolve,reject)=>{axios({method:method,url:url,data:method==='POST'||method==='PUT'?2、vue项目路由、状态管理、axios、ApI的封装。

wenangou的博客 434

对vue中用到的axios做下简单总结介绍

Axios :Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中,是http的客户端 由于在做vue项目,Vue2.0之后,尤大大推荐大家用axios替换vue-resource(虽然也能用但已经不维护了),Axios本质上也是对原生XHR的封装它有一些特性 1:从浏览器中创建 XMLHttpRequests: 2:从 node.js 创建 http 请...

weixin_44409702的博客 317
上一篇: 前端渲染base64图片与上传图片转为base64格式给后台
下一篇: 解决ie9/ie10项目报错,打不开问题
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值