最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中異步數(shù)據(jù)獲取方式(確保數(shù)據(jù)被獲取)

 更新時(shí)間:2022年01月24日 10:57:36   作者:二水你要努力啊  
這篇文章主要介紹了vue中異步數(shù)據(jù)獲取方式(確保數(shù)據(jù)被獲取),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue中異步數(shù)據(jù)獲取

1、獲取異步數(shù)據(jù),通過async/await限制 

import { fetchList } from '@/api/article'
//在created中即開始獲取
created() {
? ? this.getList()
}
methods:{
?? ?async getList() {
? ? ? this.listLoading = true
? ? ??
? ? ? //ES6寫法,與then方法鏈?zhǔn)秸{(diào)用相同,但比較簡(jiǎn)潔直觀
? ? ? //const的寫法,保證原數(shù)據(jù)不被更改
? ? ? 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) ? //打印結(jié)果為3
? ? },
? ? //changeA中沒有異步操作,程序從上往下執(zhí)行

eg2:

? ? async changeA(){
? ? ?let a ?=22
? ? ?await ?setTimeout(()=>{
? ? ? ?console.log('異步中')
? ? ? ?a = 33
? ? ?})
? ? ?console.log('異步結(jié)果')
? ? ?return a
? ? },
? ? async getAsync(){
? ? ? let a = 1
? ? ? await this.changeA()
? ? ? console.log(a) ?
? ? },
? ? ?//打印結(jié)果為?
? ? ?異步結(jié)果
? ? ?22 ? ? ? ? ? ? //a的結(jié)果
? ? ?異步中
? ? ?//結(jié)論await并未阻塞異步的代碼

eg3:

?? ?changeA(){
? ? ? return new Promise((resolve)=>{
? ? ? ? setTimeout(()=>{
? ? ? ? ? console.log('異步')
? ? ? ? ? resolve()
? ? ? ? },2000)
? ? ? })
? ? },
? ? async getAsync(){
? ? ? await this.changeA()
? ? ? console.log('同步') ??
? ? },
? ? //兩秒后打印結(jié)果?
? ? 異步
? ? 同步
? ? //結(jié)論:成功阻塞代碼

eg4:

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

總結(jié):當(dāng)await后面跟的函數(shù)存在異步且返回promise的時(shí)候,才會(huì)阻塞之后的同步代碼,由上述eg可以印證

tips:

async函數(shù)也會(huì)立即返回一個(gè)promise對(duì)象

2、將一個(gè)方法的返回值

返回promise函數(shù),可以在該方法結(jié)束后,使用鏈?zhǔn)浇Y(jié)構(gòu)

methods:{
?? ? getProfile(id) {
?? ? ? ? ?let query = {
?? ? ? ? ? ?aid: id
?? ? ? ? ?};
?? ? ? ? ?//返回一個(gè)promise對(duì)象
?? ? ? ? ?return new Promise(async resolve => {
?? ? ? ? ? ?? ? ?const {data} = await api.getProfileList(query)
?? ? ? ? ? ?? ? ?//被await阻塞的同步代碼
?? ? ? ? ? ? ?this.profileList = data;
?? ? ? ? ? ? ?this.graphical(this.dataX, this.dataY);
?? ? ? ? ? ? ?resolve();
?? ? ? ? ?});
?? ? ? ?},
?//當(dāng)?shù)玫劫x值的時(shí)候,再打開彈窗
? ? ? ? this.getProfile(aid).then(() => {
? ? ? ? ? this.dialogVisible3 = true;
? ? ? ? });
}

vue處理數(shù)據(jù)(同步,異步)問題簡(jiǎn)單記錄

情況介紹

在這里插入圖片描述

后端返回該地址的坐標(biāo)經(jīng)緯度,需要前端用百度地圖api處理成詳情地址

處理過程在遍歷中直接引入

在這里插入圖片描述

處理完數(shù)據(jù)后返回并綁定到el-table列表

通過打印發(fā)現(xiàn)getLocation()方法響應(yīng)過慢,導(dǎo)致數(shù)據(jù)渲染時(shí)該字段為空

最終解決方法:new Promise()

抽離出處理數(shù)據(jù)的方法,用異步處理方式返回

在這里插入圖片描述

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

所以。。。。。在外層調(diào)用時(shí)同樣需要異步操作

在這里插入圖片描述

因?yàn)楂@取詳情地址的方法是逐條處理的,所以在調(diào)用的外層進(jìn)行了遍歷

。。。。。。。。最終解決問題

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue源碼分析之虛擬DOM詳解

    Vue源碼分析之虛擬DOM詳解

    所謂虛擬DOM就是為了解決瀏覽器性能問題而被設(shè)計(jì)出來的。如前,若一次操作中有 10 次更新 這篇文章主要給大家介紹了關(guān)于Vue源碼分析之虛擬DOM的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • vue用h()函數(shù)創(chuàng)建Vnodes的實(shí)現(xiàn)

    vue用h()函數(shù)創(chuàng)建Vnodes的實(shí)現(xiàn)

    Vue提供了一個(gè)h()函數(shù)用于創(chuàng)建vnodes,本文就來介紹一下vue用h()函數(shù)創(chuàng)建Vnodes的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • vue中provide?inject的響應(yīng)式監(jiān)聽解決方案

    vue中provide?inject的響應(yīng)式監(jiān)聽解決方案

    這篇文章主要介紹了vue中provide?inject的響應(yīng)式監(jiān)聽解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue-cli單頁應(yīng)用改成多頁應(yīng)用配置詳解

    vue-cli單頁應(yīng)用改成多頁應(yīng)用配置詳解

    本篇文章主要介紹了vue-cli單頁應(yīng)用改成多頁應(yīng)用配置詳解,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • Vue中SSR的作用是什么

    Vue中SSR的作用是什么

    這篇文章主要介紹了Vue中SSR的作用及使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • vue可用于拖動(dòng)排序組件示例

    vue可用于拖動(dòng)排序組件示例

    這篇文章主要為大家介紹了vue可用于拖動(dòng)排序組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • vue關(guān)于錨點(diǎn)定位、跳轉(zhuǎn)到指定位置實(shí)現(xiàn)方式

    vue關(guān)于錨點(diǎn)定位、跳轉(zhuǎn)到指定位置實(shí)現(xiàn)方式

    這篇文章主要介紹了vue關(guān)于錨點(diǎn)定位、跳轉(zhuǎn)到指定位置實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue關(guān)閉開發(fā)模式提示的簡(jiǎn)單解決辦法

    vue關(guān)閉開發(fā)模式提示的簡(jiǎn)單解決辦法

    Vue開發(fā)模式是一種基于Vue.js框架的開發(fā)方式,它可以幫助開發(fā)者更高效地構(gòu)建和維護(hù)復(fù)雜的Web應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于vue關(guān)閉開發(fā)模式提示的簡(jiǎn)單解決辦法,需要的朋友可以參考下
    2024-04-04
  • Vue配置marked鏈接添加target=

    Vue配置marked鏈接添加target="_blank"的方法

    這篇文章主要介紹了Vue配置marked鏈接添加target="_blank"的方法,文中給大家提到了vue實(shí)現(xiàn)類似target="_blank"打開新窗口的代碼,感興趣的朋友參考下吧
    2019-07-07
  • vue項(xiàng)目base64加解密使用方式以及解密亂碼

    vue項(xiàng)目base64加解密使用方式以及解密亂碼

    這篇文章主要介紹了vue項(xiàng)目base64加解密使用方式以及解密亂碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05

最新評(píng)論

文水县| 稷山县| 仲巴县| 枞阳县| 海门市| 乌恰县| 翁牛特旗| 广元市| 天等县| 萍乡市| 扶余县| 安岳县| 松溪县| 温宿县| 襄垣县| 盐池县| 红原县| 赤壁市| 西昌市| 南京市| 页游| 安庆市| 钟祥市| 大田县| 马鞍山市| 阳新县| 皋兰县| 长岛县| 阿克苏市| 杭锦旗| 泗水县| 吉水县| 旅游| 札达县| 商河县| 横山县| 武陟县| 遵义县| 都匀市| 安庆市| 辽宁省|