默认来说,当我们在方法中调用接口,方法就会变成异步,但有时我们需要它是同步的(先执行前一个方法,等前一个方法执行完成再执行之后的方法)

如何做呢?
我们可以利用async/await修饰符
async修饰函数返回的是一个Promise对象,可以使用then函数添加回调函数
await修饰的如果是Promise对象:可以获取Promise中返回的内容(resolve或reject的参数),且取到值后语句才会往下执行;
在方法名前加async,在接口方法名前加await,像这样

    // 获取市下拉框数据
    async getCityList() {
        await api.get(`/vipCategoryArea/getCityList`).then(r => {
          this.citys = r.data
        })
    },

    // 获取问题区(县)数据
    getDistrictList(){
		api.get(`/vipCategoryArea/getDistrictList/${this.temp.cityId}`).then(r => {
          this.districts = r.data
        })
    }

这样调用

   var that = this
   // 回显市、区(县)
   this.getCityList().then(function(){
     that.getDistrictList()
   })

参考博文

https://blog.csdn.net/qq_38591756/article/details/90173323
https://blog.csdn.net/qq_42941302/article/details/109245356?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164186395516780265414876%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=164186395516780265414876&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-109245356.first_rank_v2_pc_rank_v29&utm_term=async&spm=1018.2226.3001.4187

Logo

前往低代码交流专区

更多推荐