-
-
Notifications
You must be signed in to change notification settings - Fork 197
Closed
Description
// 你的答案
<script setup lang="ts">
import { ref, watch, type Ref } from 'vue'
const count = ref(0)
/**
* Implement the until function
*/
function until<T>(initial: Ref<T>) {
function toBe(value: T): Promise<void> {
return new Promise((resolve) => {
const stop = watch(initial, (newVal) => {
if (newVal === value) {
resolve()
stop()
}
})
})
}
return {
toBe,
}
}
async function increase() {
count.value = 0
setInterval(() => {
count.value++
}, 1000)
await until(count).toBe(3)
console.log(count.value === 3) // Make sure the output is true
}
</script>
<template>
<p @click="increase">Increase</p>
</template>