VUE獲取Promise對象中PromiseResult中的數(shù)據(jù)(最新推薦)
VUE 項(xiàng)目中 如何獲取Promise對象中的PromiseResult中的數(shù)據(jù)
問題描述
如果想要在接口請求方法的外面拿到請求的結(jié)果,再做相關(guān)數(shù)據(jù)處理,往往我們拿到的卻是一個Promise對象,案例如下:
methods: {
getInfoList(id) {
let list = [];
// 接口請求封裝的方法
list = infoStore(id)
console.log('list :>> ', list);
}
}打印結(jié)果

可以看到,請求返回的值放在了Promise對象的PromiseResult中,但是直接取值又取不出來,這是因?yàn)椋?br />Promise 簡單說就是一個容器,里面保存著某個未來才會結(jié)束的事件(通常是一個異步操作)的結(jié)果;
從語法上說, Promise 是一個對象,從中可以獲取異步操作的消息;
所以想要直接獲取到Promise對象的值,需要通過 async await 來獲取
解決方案
通過 async await 來獲取
async 用于申明一個function是異步的;而await則可以認(rèn)為是 async await的簡寫形式,是等待一個異步方法執(zhí)行完成的;
async/awiat的使用規(guī)則:
- async和await要一起用;
- async 表示這是一個async函數(shù), await只能用在async函數(shù)里面,不能單獨(dú)使用;
- async 返回的是一個Promise對象,await就是等待這個promise的返回結(jié)果后,再繼續(xù)執(zhí)行;
- await 等待的是一個Promise對象,后面必須跟一個Promise對象,但是不必寫then(),直接就可以得到返回值;
async getShelfList(id) {
letlist = [];
list = await infoStore(id)
console.log('list :>> ', list);
}打印結(jié)果

總結(jié)
異步獲取Promise對象的值還可以使用Promise對象的then方法,但是then方法是在接口請求對象的里面執(zhí)行數(shù)據(jù)處理的操作
getShelfList(id) {
let list = [];
infoStore(id).then((res) => {
// res則為promise對象的返回的值,可以在then()方法里面做數(shù)據(jù)處理
list = res.data
})
}兩個方法使用場景不一樣,可按個人情況擇優(yōu)使用
以上是個人經(jīng)驗(yàn),希望對大家有所幫助!
更新
當(dāng)使用 async await 來獲取Promise對象的值的時候,正常函數(shù)里是沒有問題,但是放在forEach()循環(huán)里面會報錯,對于這個問題,請參考另外以下文章,此文中將詳細(xì)介紹forEach循環(huán)中不能使用async await異步調(diào)用的原因,以及不同循環(huán)中的使用方法:
如何在 for/forEach/map 循環(huán)里面使用異步調(diào)用 async/await
到此這篇關(guān)于VUE 如何獲取Promise對象中的PromiseResult中的數(shù)據(jù)的文章就介紹到這了,更多相關(guān)vue 獲取PromiseResult中的數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue源碼學(xué)習(xí)之初始化模塊init.js解析
本篇文章主要介紹了Vue源碼學(xué)習(xí)之初始化模塊init.js解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
vue3中使用VueParticles實(shí)現(xiàn)粒子動態(tài)背景效果
為了提高頁面展示效果,特別類似于登錄界面內(nèi)容比較單一的,粒子效果作為背景經(jīng)常使用到,vue工程中利用vue-particles可以很簡單的實(shí)現(xiàn)頁面的粒子背景效果,本文給大家分享vue粒子動態(tài)背景效果實(shí)現(xiàn)代碼,需要的朋友參考下吧2022-05-05
VUE DEMO之模擬登錄個人中心頁面之間數(shù)據(jù)傳值實(shí)例
今天小編就為大家分享一篇VUE DEMO之模擬登錄個人中心頁面之間數(shù)據(jù)傳值實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
Vue使用Vue Elements實(shí)現(xiàn)文件預(yù)覽功能
在現(xiàn)代 web 開發(fā)中,用戶與系統(tǒng)的交互體驗(yàn)越來越重要,而文件上傳和文件預(yù)覽是最常見的交互場景之一,本文將詳細(xì)介紹如何在 Vue 項(xiàng)目中使用 Vue Elements 來實(shí)現(xiàn)文件預(yù)覽的功能,包括基本使用方法、常見實(shí)例、性能優(yōu)化以及樣式自定義等內(nèi)容,需要的朋友可以參考下2025-01-01
Vue?vant-ui框架實(shí)現(xiàn)上拉加載下拉刷新功能
功能需求——獲取后端接口返回的數(shù)據(jù),實(shí)現(xiàn)列表數(shù)據(jù)上滑加載更多下一頁數(shù)據(jù),下拉數(shù)據(jù)刷新功能,結(jié)合vant-ui框架實(shí)現(xiàn)??芍苯訁⒖际褂?/div> 2022-09-09最新評論

