VUE获取Promise对象中PromiseResult中的数据(最新推荐)

 更新时间:2023年10月30日 11:33:58   作者:TTong___  
如果想要在接口请求方法的外面拿到请求的结果,再做相关数据处理,往往我们拿到的却是一个Promise对象,那么遇到这样的问题如何解决呢,下面小编给大家带来了VUE 项目中 如何获取Promise对象中的PromiseResult中的数据 ,感兴趣的朋友一起看看吧

VUE 项目中 如何获取Promise对象中的PromiseResult中的数据

问题描述

如果想要在接口请求方法的外面拿到请求的结果,再做相关数据处理,往往我们拿到的却是一个Promise对象,案例如下:

methods: {
  getInfoList(id) {
    let list = [];
    // 接口请求封装的方法
    list = infoStore(id)
    console.log('list :>> ', list);
  }
}

打印结果

可以看到,请求返回的值放在了Promise对象的PromiseResult中,但是直接取值又取不出来,这是因为:
Promise 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果;
从语法上说, Promise 是一个对象,从中可以获取异步操作的消息;
所以想要直接获取到Promise对象的值,需要通过 async await 来获取

解决方案

通过 async await 来获取
async 用于申明一个function是异步的;而await则可以认为是 async await的简写形式,是等待一个异步方法执行完成的;
async/awiat的使用规则:

  • async和await要一起用;
  • async 表示这是一个async函数, await只能用在async函数里面,不能单独使用;
  • async 返回的是一个Promise对象,await就是等待这个promise的返回结果后,再继续执行;
  • await 等待的是一个Promise对象,后面必须跟一个Promise对象,但是不必写then(),直接就可以得到返回值;
async getShelfList(id) {
  letlist = [];
  list = await infoStore(id)
  console.log('list :>> ', list);
}

打印结果

总结

异步获取Promise对象的值还可以使用Promise对象的then方法,但是then方法是在接口请求对象的里面执行数据处理的操作

getShelfList(id) {
  let list = [];
  infoStore(id).then((res) => {
  	// res则为promise对象的返回的值,可以在then()方法里面做数据处理
    list = res.data
  })
}

两个方法使用场景不一样,可按个人情况择优使用

以上是个人经验,希望对大家有所帮助!

更新

当使用 async await 来获取Promise对象的值的时候,正常函数里是没有问题,但是放在forEach()循环里面会报错,对于这个问题,请参考另外以下文章,此文中将详细介绍forEach循环中不能使用async await异步调用的原因,以及不同循环中的使用方法:
如何在 for/forEach/map 循环里面使用异步调用 async/await

到此这篇关于VUE 如何获取Promise对象中的PromiseResult中的数据的文章就介绍到这了,更多相关vue 获取PromiseResult中的数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3页面之间传递参数URL方式

    vue3页面之间传递参数URL方式

    文章建议在两个组件之间通过URL传递参数,而不是使用Vuex或总线事件,因为它们对于简单的跳转页面关系来说是过度的,页面1通过跳转并使用模板字符串传递ID,页面2通过获取URL参数来接收并显示
    2025-10-10
  • 手把手教你使用vue-cli脚手架(图文解析)

    手把手教你使用vue-cli脚手架(图文解析)

    本篇文章主要介绍了手把手教你使用vue-cli脚手架(图文解析),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Vue源码学习之初始化模块init.js解析

    Vue源码学习之初始化模块init.js解析

    本篇文章主要介绍了Vue源码学习之初始化模块init.js解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • vue3中使用VueParticles实现粒子动态背景效果

    vue3中使用VueParticles实现粒子动态背景效果

    为了提高页面展示效果,特别类似于登录界面内容比较单一的,粒子效果作为背景经常使用到,vue工程中利用vue-particles可以很简单的实现页面的粒子背景效果,本文给大家分享vue粒子动态背景效果实现代码,需要的朋友参考下吧
    2022-05-05
  • VUE DEMO之模拟登录个人中心页面之间数据传值实例

    VUE DEMO之模拟登录个人中心页面之间数据传值实例

    今天小编就为大家分享一篇VUE DEMO之模拟登录个人中心页面之间数据传值实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Vue使用Vue Elements实现文件预览功能

    Vue使用Vue Elements实现文件预览功能

    在现代 web 开发中,用户与系统的交互体验越来越重要,而文件上传和文件预览是最常见的交互场景之一,本文将详细介绍如何在 Vue 项目中使用 Vue Elements 来实现文件预览的功能,包括基本使用方法、常见实例、性能优化以及样式自定义等内容,需要的朋友可以参考下
    2025-01-01
  • vue 如何引入本地某个文件 require

    vue 如何引入本地某个文件 require

    这篇文章主要介绍了vue 如何引入本地某个文件 require,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue EventBus自定义组件事件传递

    Vue EventBus自定义组件事件传递

    这篇文章主要介绍了Vue EventBus自定义组件事件传递,组件化应用构建是Vue的特点之一,本文主要介绍EventBus进行数据消息传递 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Vue vant-ui框架实现上拉加载下拉刷新功能

    Vue vant-ui框架实现上拉加载下拉刷新功能

    功能需求——获取后端接口返回的数据,实现列表数据上滑加载更多下一页数据,下拉数据刷新功能,结合vant-ui框架实现。可直接参考使用
    2022-09-09
  • vue3中Teleport和Suspense的具体使用

    vue3中Teleport和Suspense的具体使用

    本文主要介绍了vue3中Teleport和Suspense的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论