Vue3中,如何等待异步请求结束后再接着往下运行程序

img


写了个伪代码,我描述下问题:
我在setup()中发送了个异步请求,返回了数据,然后下面用到了这个数据,但是值不对,我想应该是异步请求尚未结束,就已经运行到下面了,导致值为变量的初始值,这个该如何解决?


setup() {
    const number = ref(0);
    axios.get('xxx').then((res)=>{
        number.value = res.data.Data;
        const flag = number.value > 3;
        .....(更多逻辑)
    })
}

直接then里面就好,这种事可以保证请求成功后执行的,更多逻辑也可以抽成一个函数放到里面

异步处理方案: promise 或者 async await
可以参考下面链接,了解使用方法https://blog.csdn.net/Alice_czy/article/details/118577681?spm=1001.2014.3001.5502

如果是async解决的话代码理应是这样的,setup好像使用async会很多麻烦,我对Vue3不了解,给你官网地址:https://v3.cn.vuejs.org/guide/migration/suspense.html#%E4%BB%8B%E7%BB%8D

    async setup() {
        const number = ref(0);
        const res = await axios.get('xxx')
        number.value = res.data.Data;
        const flag = number.value > 3;
    }

img