<!-- Notes: 🎉 Congrats on solving the challenge and we are happy to see you'd like to share your solutions! However, due to the increasing number of users, the issue pool would be filled by answers very quickly. Before you submit your solutions, please kindly search for similar solutions that may already be posted. You can "thumb up" on them or leave your comments on that issue. If you think you have a different solution, do not hesitate to create the issue and share it with others. Sharing some ideas or thoughts about how to solve this problem is greatly welcome! Thanks! --> ```vue // your answers ``` <script setup lang='ts'> import { ref, unref, toRef } from "vue" const count = ref<number>(0) const result = ref<boolean>(false); /** * Implement the until function */ function until(initial) { function toBe(value) { return new Promise((resolve) => { const interval = setInterval(() => { if (initial.value === value) { clearInterval(interval); resolve(true); } },1000) }) } 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> <!-- OR Vue SFC Playground Link (https://sfc.vuejs.org) -->