使vue中的方法同步执行
默认来说,当我们在方法中调用接口,方法就会变成异步,但有时我们需要它是同步的(先执行前一个方法,等前一个方法执行完成再执行之后的方法)如何做呢?我们可以利用async/await修饰符在方法名前加async,在接口方法名前加await,像这样// 获取市下拉框数据async getCityList() {await api.get(`/vipCategoryArea/getCityList`).t
默认来说,当我们在方法中调用接口,方法就会变成异步,但有时我们需要它是同步的(先执行前一个方法,等前一个方法执行完成再执行之后的方法)
如何做呢?
我们可以利用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
更多推荐
所有评论(0)