refactor: try avoid request api at same time
parent
9a2a366e65
commit
f304c5eb84
|
|
@ -173,6 +173,7 @@ import jsYaml from "js-yaml";
|
||||||
import {ref} from "vue";
|
import {ref} from "vue";
|
||||||
import Hotkey from "@/components/hotkey.vue";
|
import Hotkey from "@/components/hotkey.vue";
|
||||||
import ExtraNetworksPopup from "@/components/extraNetworksPopup.vue";
|
import ExtraNetworksPopup from "@/components/extraNetworksPopup.vue";
|
||||||
|
import waitTick from "@/utils/waitTick";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'App',
|
name: 'App',
|
||||||
|
|
@ -370,7 +371,7 @@ export default {
|
||||||
this.gradioAPI.setData('languageCode', val).then(data => {
|
this.gradioAPI.setData('languageCode', val).then(data => {
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
})
|
})
|
||||||
this.loadGroupTags()
|
waitTick.addWaitTick(() => this.loadGroupTags())
|
||||||
},
|
},
|
||||||
immediate: false,
|
immediate: false,
|
||||||
},
|
},
|
||||||
|
|
@ -782,7 +783,7 @@ export default {
|
||||||
}
|
}
|
||||||
if (data.tagCompleteFile !== null) {
|
if (data.tagCompleteFile !== null) {
|
||||||
this.tagCompleteFile = data.tagCompleteFile
|
this.tagCompleteFile = data.tagCompleteFile
|
||||||
this.$nextTick(() => {
|
waitTick.addWaitTick(() => {
|
||||||
this.$refs.translateSetting.getCSV(this.tagCompleteFile)
|
this.$refs.translateSetting.getCSV(this.tagCompleteFile)
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -870,7 +871,8 @@ export default {
|
||||||
})
|
})
|
||||||
|
|
||||||
this.handlePaste()
|
this.handlePaste()
|
||||||
this.loadGroupTags()
|
|
||||||
|
waitTick.addWaitTick(() => this.loadGroupTags())
|
||||||
|
|
||||||
/*this.gradioAPI.getVersion().then(res => {
|
/*this.gradioAPI.getVersion().then(res => {
|
||||||
this.version = res.version
|
this.version = res.version
|
||||||
|
|
@ -905,7 +907,7 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
loadGroupTags() {
|
loadGroupTags() {
|
||||||
this.gradioAPI.getGroupTags(this.languageCode).then(data => {
|
return this.gradioAPI.getGroupTags(this.languageCode).then(data => {
|
||||||
if (!data || data === '') {
|
if (!data || data === '') {
|
||||||
this.groupTags = []
|
this.groupTags = []
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -120,10 +120,10 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
emits: ['use'],
|
emits: ['use'],
|
||||||
async mounted() {
|
mounted() {
|
||||||
for (const item of this.favorites) {
|
this.favorites.forEach(item => {
|
||||||
await this.getFavorites(item.key)
|
waitTick.addWaitTick(() => this.getFavorites(item.key))
|
||||||
}
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
formatTime(time) {
|
formatTime(time) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
import { nextTick } from 'vue'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
/**
|
||||||
|
* @types Function[]
|
||||||
|
*/
|
||||||
|
waitTickList: [],
|
||||||
|
startingTick: false,
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param cb Function
|
||||||
|
*/
|
||||||
|
addWaitTick(cb) {
|
||||||
|
this.waitTickList.push(cb)
|
||||||
|
return this.startWaitTick()
|
||||||
|
},
|
||||||
|
|
||||||
|
async execatueWaitTick()
|
||||||
|
{
|
||||||
|
if (this.startingTick) return
|
||||||
|
|
||||||
|
this.startingTick = true
|
||||||
|
|
||||||
|
while (this.waitTickList.length) {
|
||||||
|
const cb = this.waitTickList.shift()
|
||||||
|
await nextTick().then(cb)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.startingTick = false
|
||||||
|
},
|
||||||
|
|
||||||
|
async startWaitTick() {
|
||||||
|
if (!this.startingTick)
|
||||||
|
{
|
||||||
|
return nextTick(() => this.execatueWaitTick().catch(e => {
|
||||||
|
this.startingTick = false
|
||||||
|
return this.startWaitTick()
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue