广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue中异步数据获取方式(确保数据被获取)
  • 132
分享到

vue中异步数据获取方式(确保数据被获取)

2024-04-02 19:04:59 132人浏览 独家记忆
摘要

目录Vue中异步数据获取1、获取异步数据,通过async/await限制 2、将一个方法的返回值vue处理数据(同步,异步)问题简单记录情况介绍最终解决方法:new Pro

vue中异步数据获取

1、获取异步数据,通过async/await限制 

import { fetchList } from '@/api/article'
//在created中即开始获取
created() {
    this.getList()
}
methods:{
    async getList() {
      this.listLoading = true
      
      //es6写法,与then方法链式调用相同,但比较简洁直观
      //const的写法,保证原数据不被更改
      const { data } = await fetchList(this.listQuery)
      
      //被await阻塞的代码
      const items = data.items
      this.list = items.map(v => {
      })
      this.listLoading = false
    },
}

eg1:

    changeA(){
      return  3
    },
    async getAsync(){
      let a = 1
      a = await this.changeA()
      console.log(a)   //打印结果为3
    },
    //changeA中没有异步操作,程序从上往下执行

eg2:

    async changeA(){
     let a  =22
     await  setTimeout(()=>{
       console.log('异步中')
       a = 33
     })
     console.log('异步结果')
     return a
    },
    async getAsync(){
      let a = 1
      await this.changeA()
      console.log(a)  
    },
     //打印结果为 
     异步结果
     22             //a的结果
     异步中
     //结论await并未阻塞异步的代码

eg3:

    changeA(){
      return new Promise((resolve)=>{
        setTimeout(()=>{
          console.log('异步')
          resolve()
        },2000)
      })
    },
    async getAsync(){
      await this.changeA()
      console.log('同步')   
    },
    //两秒后打印结果 
    异步
    同步
    //结论:成功阻塞代码

eg4:

    changeA(){
      return new Promise((resolve)=>{
        setTimeout(()=>{
          console.log('异步')
          resolve()
        },2000)
      })
    },
    async getAsync(){
      this.changeA()
      console.log('同步')   
    },
    //先打印同步,两秒后打印异步

总结:当await后面跟的函数存在异步且返回promise的时候,才会阻塞之后的同步代码,由上述eg可以印证

tips:

async函数也会立即返回一个promise对象

2、将一个方法的返回值

返回promise函数,可以在该方法结束后,使用链式结构

methods:{
     getProfile(id) {
          let query = {
            aid: id
          };
          //返回一个promise对象
          return new Promise(async resolve => {
                 const {data} = await api.getProfileList(query)
                 //被await阻塞的同步代码
              this.profileList = data;
              this.graphical(this.dataX, this.dataY);
              resolve();
          });
        },
 //当得到赋值的时候,再打开弹窗
        this.getProfile(aid).then(() => {
          this.dialogVisible3 = true;
        });
}

vue处理数据(同步,异步)问题简单记录

情况介绍

在这里插入图片描述

后端返回该地址的坐标经纬度,需要前端用百度地图api处理成详情地址

处理过程在遍历中直接引入

在这里插入图片描述

处理完数据后返回并绑定到el-table列表

通过打印发现getLocation()方法响应过慢,导致数据渲染时该字段为空

最终解决方法:new Promise()

抽离出处理数据的方法,用异步处理方式返回

在这里插入图片描述

返回的之中存在空值。。。

所以。。。。。在外层调用时同样需要异步操作

在这里插入图片描述

因为获取详情地址的方法是逐条处理的,所以在调用的外层进行了遍历

。。。。。。。。最终解决问题

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue中异步数据获取方式(确保数据被获取)

本文链接: https://www.lsjlt.com/news/163541.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue中异步数据获取方式(确保数据被获取)
    目录vue中异步数据获取1、获取异步数据,通过async/await限制 2、将一个方法的返回值vue处理数据(同步,异步)问题简单记录情况介绍最终解决方法:new Pro...
    99+
    2022-11-13
  • vue中异步数据获取方式是什么
    今天给大家介绍一下vue中异步数据获取方式是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。vue中异步数据获取1、获取异步数据,通过async/await...
    99+
    2023-06-28
  • ajax中怎么异步获取数据
    这篇文章给大家介绍ajax中怎么异步获取数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。代码如下:<script type="text/javascript...
    99+
    2022-10-19
  • layuitablechecked获取选中数据方式
    目录layui table checked获取选中数据获取layui中table表选中行数据法一 table表中每一列后面存在操作按钮,点击按钮进行列操作法二 在table表中加入单...
    99+
    2022-11-13
    layui table checked table获取选中数据 checked选中数据
  • js如何获取异步函数数据
    本篇内容介绍了“js如何获取异步函数数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!异步函数一般正常情况下,js中的函数是一个一个地按照顺...
    99+
    2023-07-05
  • JavaScript实现异步获取表单数据
    本文实例为大家分享了JavaScript实现异步获取表单数据的具体代码,供大家参考,具体内容如下 在上一篇文章中讲到了使用JavaScript异步提交表单中的数据,那么今天我们就讲讲...
    99+
    2022-11-12
  • Vue获取表单数据的方法
    目录需求获取数据并提交模板过滤器过滤器的使用场景总结 需求 使用Vue收集如下用户数据: 获取数据并提交 代码实现: 将value的值与变量属性进行绑定 v-model.tri...
    99+
    2022-11-12
  • vue获取v-for异步数据dom的解决问题
    目录vue获取v-for异步数据dom问题描述原因解决思路及方案vue获取DOM问题$nextTick使用组件name属性使用 总结vue获取v-for异步数据dom 问题...
    99+
    2023-03-24
    vue获取v-for异步数据dom vue v-for v-for异步数据dom
  • C sharp (#) 数据类型获取方式
    目录C sharp (#) 数据类型获取C#的五大数据类型C#类型的派生谱类C sharp (#) 数据类型获取 这里研究一下关于c#中如何获取变量类型的问题。 首先我们研究一下如何...
    99+
    2022-11-13
    C sharp数据类型 sharp数据类型获取 sharp数据类型
  • Vue中computed计算属性和data数据获取方式
    目录computed计算属性和data数据获取解决方法一解决方法二computed计算属性取对象的值,第一次报错undefined报错和打印值解决方案computed计算属性和dat...
    99+
    2022-11-13
  • vue获取v-for异步数据dom问题怎么解决
    这篇文章主要讲解了“vue获取v-for异步数据dom问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue获取v-for异步数据dom问题怎么解决”吧!vue获取v-for异步数...
    99+
    2023-07-05
  • JavaScript如何实现异步获取表单数据
    这篇文章主要介绍JavaScript如何实现异步获取表单数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本文实例为大家分享了JavaScript实现异步获取表单数据的具体代码,供大家参考,具体内容如下在上一篇文章中...
    99+
    2023-06-15
  • Vuex数据的存储与获取方式
    目录Vuex数据存储与获取以下示例引用自官网(开始 | Vuex)可以举一个实际应用的例子Vuex存值与取值(简单易懂)Vuex数据存储与获取 因为最近需要对原有项目进行改造,之前没...
    99+
    2022-11-13
  • Django中怎么利用ajax异步刷新获取数据
    今天就跟大家聊聊有关Django中怎么利用ajax异步刷新获取数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。<script>   &nb...
    99+
    2023-06-04
  • Django中从mysql数据库中获取数据传到echarts方式
    尝试了几种方法,感觉过于复杂,于是自己写了一个方法。 (1)首先在要绘图的页面传入从数据库中提取的参数,这一步通过views可以实现; (2)然后是页面加载完成时执行的函数ready,调用方法f; (3)在函数f中获...
    99+
    2022-05-27
    Django mysql echarts
  • Python中parsel两种获取数据方式小结
    目录⭐️网页解析利器parsel实战🌟 parsel简介🌟发送请求🌟解析数据✨XPATH方式✨CSS方法🌟总结⭐️网页解析利器parsel实战 我们以实际的案例,来具体了解学习其功能...
    99+
    2023-05-17
    Python parsel获取 Python parsel
  • vue实现加载页面自动触发函数(及异步获取数据)
    目录加载页面自动触发函数实例页面加载时,触发某个函数的方法解决方法如下加载页面自动触发函数 实例 methods:{ onCreate:async function() ...
    99+
    2022-11-13
  • Vue获取表单数据的方法是什么
    Vue获取表单数据的方法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。需求使用Vue收集如下用户数据:获取数据并提交代码实现:将value的值与变量属性进行绑定v-m...
    99+
    2023-06-22
  • Ajax异步获取html数据中包含js方法无效怎么办
    小编给大家分享一下Ajax异步获取html数据中包含js方法无效怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!页面上使用j...
    99+
    2022-10-19
  • Python爬虫如何获取数据并保存到数据库中
    本篇内容主要讲解“Python爬虫如何获取数据并保存到数据库中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python爬虫如何获取数据并保存到数据库中”吧!1.简介介绍-网络爬虫(又称为网页蜘...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作