Open
Description
// 你的答案
<script setup lang='ts'>
import { ref } from "vue"
// 定义一个计数器 ref
const count = ref(0)
// 定义一个 until 函数
/**
* 实现`until`函数
*/
function until(initial) {
// 定义一个 toBe 函数
function toBe(value) {
// 返回一个 Promise 对象,并在 resolve 中设置 initial 的值为 value
return new Promise(resolve => {
initial.value = value
resolve(initial.value)
})
}
// 返回一个包含 toBe 函数的对象,方便在模板中使用
return {
toBe,
}
}
// 定义一个 increase 函数
async function increase() {
// 将 count 的值重置为 0
count.value = 0
// 设置一个定时器,每隔 1000 毫秒增加 count 的值
setInterval(() => {
count.value++
}, 1000)
// 使用 until 函数,等待 count 的值等于 3
await until(count).toBe(3)
// 打印 count 的值是否等于 3
console.log(count.value === 3) // 确保输出为 true
}
</script>
<template>
<p @click="increase">
Increase
</p>
</template>