This commit is contained in:
48
src/components/MainpageButton.svelte
Normal file
48
src/components/MainpageButton.svelte
Normal file
@ -0,0 +1,48 @@
|
||||
<script lang="ts">
|
||||
import { onMount } from 'svelte'
|
||||
import { mainpageClick, mainpageGetClick } from '../lib/apis/legacy/mainpage'
|
||||
|
||||
let clicks = 0
|
||||
let clicksPending = 0
|
||||
|
||||
onMount(() => {
|
||||
// 先 fetch 一次
|
||||
mainpageGetClick().then((r) => {
|
||||
clicks = r.data
|
||||
})
|
||||
|
||||
// 添加计时器
|
||||
let _counter = 0
|
||||
let itv = setInterval(() => {
|
||||
_counter++
|
||||
if (clicksPending != 0 && _counter >= 2) {
|
||||
_counter = 0
|
||||
|
||||
let _clickPending = clicksPending
|
||||
clicks += clicksPending
|
||||
clicksPending = 0
|
||||
|
||||
mainpageClick(_clickPending).then((r) => {
|
||||
clicks = r.data
|
||||
})
|
||||
} else {
|
||||
if (_counter >= 60) {
|
||||
_counter = 0
|
||||
mainpageGetClick().then((r) => {
|
||||
clicks = r.data
|
||||
})
|
||||
}
|
||||
}
|
||||
}, 500)
|
||||
|
||||
return () => {
|
||||
clearInterval(itv)
|
||||
}
|
||||
})
|
||||
|
||||
async function click() {
|
||||
clicksPending += 1
|
||||
}
|
||||
</script>
|
||||
|
||||
<button onclick={click}>没用的按钮 | {clicks + clicksPending}</button>
|
||||
Reference in New Issue
Block a user