VUE中的方法调用顺序是依次进行的,方法体内部也是依次执行的,但是,两个方法体的执行顺序并不能严格控制。
以下方法中都带有promise函数或异步调用。
initUserData() {
this.getPsCountryList() // 1 获取国家列表stateOptions,方法内同步
this.getTimeZone() // 2 获取时区timezones,方法内同步
this.getUserInfo() // 3 获取用户信息
}
在实际运行中,三个方法的执行顺序是1-2-3,但是方法3始终不能获取到stateOptions和timezones
背后的调用顺序是1-2-3,但是,方法的执行时间并没有严格控制。
如果想要做到方法调用和执行是同步的,可以使用async和await修饰符。
例如:
async initUserData() {
await this.getPsCountryList() // 1 获取国家列表stateOptions,方法内同步
await this.getTimeZone() // 2 获取时区timezones,方法内同步
await this.getUserInfo() // 3 获取用户信息
}