欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VUE獲取Promise對象中PromiseResult中的數(shù)據(jù)(最新推薦)

 更新時間:2023年10月30日 11:33:58   作者:TTong___  
如果想要在接口請求方法的外面拿到請求的結(jié)果,再做相關(guān)數(shù)據(jù)處理,往往我們拿到的卻是一個Promise對象,那么遇到這樣的問題如何解決呢,下面小編給大家?guī)砹薞UE?項目中?如何獲取Promise對象中的PromiseResult中的數(shù)據(jù)?,感興趣的朋友一起看看吧

VUE 項目中 如何獲取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中,但是直接取值又取不出來,這是因為:
Promise 簡單說就是一個容器,里面保存著某個未來才會結(jié)束的事件(通常是一個異步操作)的結(jié)果;
從語法上說, Promise 是一個對象,從中可以獲取異步操作的消息;
所以想要直接獲取到Promise對象的值,需要通過 async await 來獲取

解決方案

通過 async await 來獲取
async 用于申明一個function是異步的;而await則可以認為是 async await的簡寫形式,是等待一個異步方法執(zhí)行完成的;
async/awiat的使用規(guī)則:

  • async和await要一起用;
  • async 表示這是一個async函數(shù), await只能用在async函數(shù)里面,不能單獨使用;
  • 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)驗,希望對大家有所幫助!

更新

當(dāng)使用 async await 來獲取Promise對象的值的時候,正常函數(shù)里是沒有問題,但是放在forEach()循環(huán)里面會報錯,對于這個問題,請參考另外以下文章,此文中將詳細介紹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中實現(xiàn)路由跳轉(zhuǎn)的三種方式超詳細教程

    vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式超詳細教程

    這篇文章主要介紹了vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式超詳細教程,其中聲明式router-link實現(xiàn)跳轉(zhuǎn)最簡單的方法,可用組件router-link來替代a標簽,每種方式給大家講解的非常詳細需要的朋友可以參考下
    2022-11-11
  • vue子元素綁定的事件, 阻止觸發(fā)父級上的事件處理方式

    vue子元素綁定的事件, 阻止觸發(fā)父級上的事件處理方式

    這篇文章主要介紹了vue子元素綁定的事件, 阻止觸發(fā)父級上的事件處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue easytable組件使用詳解

    vue easytable組件使用詳解

    Vue Easytable是一個基于Vue.js的數(shù)據(jù)表格組件庫,它提供豐富的功能和靈活的配置,幫助開發(fā)者快速搭建復(fù)雜的數(shù)據(jù)表格界面,這篇文章主要介紹了vue easytable組件使用,需要的朋友可以參考下
    2023-09-09
  • vue動態(tài)路由加載時出現(xiàn)Cannot?find?module?xxx問題

    vue動態(tài)路由加載時出現(xiàn)Cannot?find?module?xxx問題

    這篇文章主要介紹了vue動態(tài)路由加載時出現(xiàn)Cannot?find?module?xxx問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue3?中ref和reactive的區(qū)別講解

    vue3?中ref和reactive的區(qū)別講解

    如果在template里使用的是ref類型的數(shù)據(jù),?那么Vue會自動幫我們添加.value,如果在template里使用的是reactive類型的數(shù)據(jù),?那么Vue不會自動幫我們添加.value,這篇文章主要介紹了vue3?中ref和reactive的區(qū)別,需要的朋友可以參考下
    2022-12-12
  • 解決vue?cli3使用axios跨域問題

    解決vue?cli3使用axios跨域問題

    這篇文章介紹了解決vue?cli3使用axios跨域問題,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • element自定義表單驗證上傳身份證正反面的實現(xiàn)

    element自定義表單驗證上傳身份證正反面的實現(xiàn)

    表單驗證在很多地方都可以用的到,本文主要介紹了element自定義表單驗證上傳身份證正反面的實現(xiàn),文中根據(jù)實例編碼詳細介紹的十分詳盡,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue實現(xiàn)回到頂部和底部動畫效果

    Vue實現(xiàn)回到頂部和底部動畫效果

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)回到頂部和底部動畫效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • vue的axios使用post時必須使用qs.stringify而get不用問題

    vue的axios使用post時必須使用qs.stringify而get不用問題

    這篇文章主要介紹了vue的axios使用post時必須使用qs.stringify而get不用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue實現(xiàn)滑塊拖拽校驗功能的全過程

    vue實現(xiàn)滑塊拖拽校驗功能的全過程

    vue驗證滑塊功能,在生活中很多地方都可以見到,使用起來非常方便,這篇文章主要給大家介紹了關(guān)于vue實現(xiàn)滑塊拖拽校驗功能的相關(guān)資料,需要的朋友可以參考下
    2021-08-08

最新評論