Merge pull request #337 from bluelovers/pr/getFavorites-001
refactor: try avoid request api at same timepull/355/head
commit
7bd3a0940a
|
|
@ -173,6 +173,7 @@ import jsYaml from "js-yaml";
|
|||
import {ref} from "vue";
|
||||
import Hotkey from "@/components/hotkey.vue";
|
||||
import ExtraNetworksPopup from "@/components/extraNetworksPopup.vue";
|
||||
import waitTick from "@/utils/waitTick";
|
||||
|
||||
export default {
|
||||
name: 'App',
|
||||
|
|
@ -370,7 +371,7 @@ export default {
|
|||
this.gradioAPI.setData('languageCode', val).then(data => {
|
||||
}).catch(err => {
|
||||
})
|
||||
this.loadGroupTags()
|
||||
waitTick.addWaitTick(() => this.loadGroupTags())
|
||||
},
|
||||
immediate: false,
|
||||
},
|
||||
|
|
@ -782,7 +783,7 @@ export default {
|
|||
}
|
||||
if (data.tagCompleteFile !== null) {
|
||||
this.tagCompleteFile = data.tagCompleteFile
|
||||
this.$nextTick(() => {
|
||||
waitTick.addWaitTick(() => {
|
||||
this.$refs.translateSetting.getCSV(this.tagCompleteFile)
|
||||
})
|
||||
} else {
|
||||
|
|
@ -870,7 +871,8 @@ export default {
|
|||
})
|
||||
|
||||
this.handlePaste()
|
||||
this.loadGroupTags()
|
||||
|
||||
waitTick.addWaitTick(() => this.loadGroupTags())
|
||||
|
||||
/*this.gradioAPI.getVersion().then(res => {
|
||||
this.version = res.version
|
||||
|
|
@ -905,7 +907,7 @@ export default {
|
|||
})
|
||||
},
|
||||
loadGroupTags() {
|
||||
this.gradioAPI.getGroupTags(this.languageCode).then(data => {
|
||||
return this.gradioAPI.getGroupTags(this.languageCode).then(data => {
|
||||
if (!data || data === '') {
|
||||
this.groupTags = []
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ import common from "@/utils/common";
|
|||
|
||||
import LanguageMixin from "@/mixins/languageMixin";
|
||||
import IconSvg from "@/components/iconSvg.vue";
|
||||
import waitTick from '@/utils/waitTick';
|
||||
|
||||
export default {
|
||||
components: {IconSvg},
|
||||
|
|
@ -122,7 +123,7 @@ export default {
|
|||
emits: ['use'],
|
||||
mounted() {
|
||||
this.favorites.forEach(item => {
|
||||
this.getFavorites(item.key)
|
||||
waitTick.addWaitTick(() => this.getFavorites(item.key))
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -134,7 +135,7 @@ export default {
|
|||
let favoriteItem = this.favorites.find(item => item.key === favoriteKey)
|
||||
if (!favoriteItem) return
|
||||
this.loading = true
|
||||
this.gradioAPI.getFavorites(favoriteKey).then(res => {
|
||||
return this.gradioAPI.getFavorites(favoriteKey).then(res => {
|
||||
if(res && res.length > 0){
|
||||
// 倒序
|
||||
res.reverse()
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ export default {
|
|||
let historyItem = this.histories.find(item => item.key === historyKey)
|
||||
if (!historyItem) return
|
||||
this.loading = true
|
||||
this.gradioAPI.getHistories(historyKey).then(res => {
|
||||
return this.gradioAPI.getHistories(historyKey).then(res => {
|
||||
if (res && res.length > 0) {
|
||||
// 倒序
|
||||
res.reverse()
|
||||
|
|
|
|||
|
|
@ -267,7 +267,7 @@ Github: {{name}}`
|
|||
if (this.tagCompleteFilesLoading) return
|
||||
this.tagCompleteFilesLoading = true
|
||||
this.tagCompleteFiles = []
|
||||
this.gradioAPI.getCSVs().then(res => {
|
||||
return this.gradioAPI.getCSVs().then(res => {
|
||||
this.tagCompleteFilesLoading = false
|
||||
if (!res || res.length <= 0) return
|
||||
this.tagCompleteFiles.push({
|
||||
|
|
|
|||
|
|
@ -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