vue中循環(huán)請(qǐng)求接口參數(shù)問(wèn)題及解決
vue 循環(huán)請(qǐng)求接口參數(shù)問(wèn)題
今天遇到一個(gè)循環(huán)請(qǐng)求問(wèn)題
先上代碼
function(){ ? ? ? var num = this.eventType.length; ? ? ? for (var i = 0; i < num; i++) { ? ? ? ? arr.eventType = this.eventType[i]; ? ? ? ? console.log(arr.eventType, i, "arr"); ? ? ? ? this.getChart(arr); ? ? ? ? this.getPie(arr); ? ? ? } } ? ? getChart(arr) { ? ? //接口請(qǐng)求 ? ? }, ? ? getPie(arr) { ? ? //接口請(qǐng)求 ? ? },
問(wèn)題出在eventype上,在接口請(qǐng)求前打印出的eventype都是不一樣的,在接口里面打印,每次都是一樣的,這導(dǎo)致每次接口的請(qǐng)求參數(shù)都是一樣,獲取的數(shù)據(jù)也是一樣。
搞了半天才找到原因,修改如下
async function(){ ? ? ? var num = this.eventType.length; ? ? ? for (var i = 0; i < num; i++) { ? ? ? ? arr.eventType = this.eventType[i]; ? ? ? ? console.log(arr.eventType, i, "arr"); ? ? ? ? await this.getChart(arr); ? ? ? ? await this.getPie(arr); ? ? ? } } ? ? async getChart(arr) { ? ? await //接口請(qǐng)求 ? ? }, ? ? async getPie(arr) { ? ? await //接口請(qǐng)求 ? ? },
這下就ok了。
原因在于async是同步請(qǐng)求,每次循環(huán)都會(huì)執(zhí)行請(qǐng)求
vue for循環(huán)請(qǐng)求同一url參數(shù)不同但參數(shù)覆蓋
今天搞Vue 遇到一個(gè)比較怪異的問(wèn)題,看代碼
let self=this for (let i = 0; i < data.length; i++) { ? ? ? ? ? ? ? ? let item = data[i] ? ? ? ? ? ? ? ? item['id'] = i + 1// 賦值序號(hào) ? ? ? ? ? ? ? ? item['similarity'] = parseFloat(item['similarity']).toFixed(2) ? ? ? ? ? ? ? ? // } ? ? ? ? ? ? ? ? this.resembleData = data ? ? ? ? ? ? ? ? // 分次請(qǐng)求軌跡數(shù)據(jù) ? ? ? ? ? ? ? ? let targetIdParam = item['targetId'] ? ? ? ? ? ? ? ? self.queryTrajParams['targetId'] = targetIdParam ? ? ? ? ? ? ? ? self.queryTrajParams['sourceId'] = null ? ? ? ? ? ? ? ? console.log('targetId參數(shù)', targetIdParam) ? ? ? ? ? ? ? ? console.log('queryTrajParams', self.queryTrajParams) ? ? ? ? ? ? ? ? axios.get(serviceUrl.trajectoryDataUrl, { ? ? ? ? ? ? ? ? ? params: self.queryTrajParams ? ? ? ? ? ? ? ? }).then(res => {
....省略
發(fā)現(xiàn)network請(qǐng)求的url參數(shù)同一個(gè),而且都是最后一個(gè),看來(lái)是參數(shù)被覆蓋了,我是Java出身,碰到這種問(wèn)題一臉懵逼
是一枚前端小菜雞,不過(guò)我隱約發(fā)現(xiàn)是參數(shù)的類(lèi)型原因,然后我試了下基本數(shù)據(jù)類(lèi)型,只傳number類(lèi)型,果然能傳成功
看來(lái)就是對(duì)self.queryTrajParams進(jìn)行一下轉(zhuǎn)換
?let queryParam = JSON.parse(JSON.stringify(self.queryTrajParams))
使用let 對(duì)參數(shù)進(jìn)行重定義,let會(huì)生成一份臨時(shí)傀儡代碼塊,每次都會(huì)生成??!
axios.get(serviceUrl.trajectoryDataUrl, { ? ? ? ? ? ? ? ? ? params: queryParam? ? ? ? ? ? ? ? ? }).then(res => {
然后完美解決問(wèn)題!!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli3啟動(dòng)服務(wù)如何自動(dòng)打開(kāi)瀏覽器配置
這篇文章主要介紹了vue-cli3啟動(dòng)服務(wù)如何自動(dòng)打開(kāi)瀏覽器配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09vant中field組件label屬性兩端對(duì)齊問(wèn)題及解決
這篇文章主要介紹了vant中field組件label屬性兩端對(duì)齊問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05php+vue3實(shí)現(xiàn)點(diǎn)選驗(yàn)證碼功能
這篇文章主要介紹了php+vue3實(shí)現(xiàn)點(diǎn)選驗(yàn)證碼,本文通過(guò)實(shí)例代碼給大家介紹的詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11vue.js 使用v-if v-else發(fā)現(xiàn)沒(méi)有執(zhí)行解決辦法
這篇文章主要介紹了vue.js 使用v-if v-else發(fā)現(xiàn)沒(méi)有執(zhí)行解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05vue3?element-plus?實(shí)現(xiàn)表格數(shù)據(jù)更改功能詳細(xì)步驟
這篇文章主要介紹了vue3 element-plus實(shí)現(xiàn)表格數(shù)據(jù)更改功能,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07使用form-create動(dòng)態(tài)生成vue自定義組件和嵌套表單組件
這篇文章主要介紹了使用form-create動(dòng)態(tài)生成vue自定義組件和嵌套表單組件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01