vue的异步操作,vue同步和异步的区别
本文主要介绍了Vue中的同步和异步调用序列,有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。
目录
Vue的同步和异步调用顺序,比如Vue的两个异步方法依次执行第一个异步方法和第二个异步方法。
Vue的同步和异步调用顺序
在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修饰符。
例如
异步initUserData() {
wait this.getpscountrylist ()//1获取国家列表的stateOptions,并在方法内同步。
Await this.getTimeZone() //2获取时区timezones,在方法内同步。
Await this.getUserInfo() //3获取用户信息
}
Vue两个异步方法顺序执行
要求:顺序执行两个异步函数。首先获取第一个异步函数返回的值,然后在第二个异步函数中调用。
方法:在第一个异步函数中返回一个promise,然后用async和await调用它。
第一个异步方法
getAllNotice() {
let data={
searchParams: [{
字段名:设备Id ,
操作: eq ,
值: 000000
}],
尺寸:-1
}
返回新承诺((解决)={
API.getNotice(数据)。然后(res={
console.log(res)
if (res.data.code==200) {
this . notice list=RES . data . data . list
console.log(this.noticeList)
resolve();
返回
}否则{
uni.showToast({
标题:res.data.message,
时长:1000,
图标:“无”
})
}
})
})
},
第二个异步方法
//获取当前公告列表
getNowNotice(){
//获取当前时间戳
var timestamp=(新日期())。getTime();
var _this=this
console.log(时间戳);
//将noticeList的结束时间转换为时间戳
for(var I=0;ithis . notice list . length;i ){
var endTimeStamp=TIME。TimeToTimeStamp(this . notice list[I]。结束时间)
console.log(endTimeStamp)
if(endTimeStamptimestamp){
_ this . notice new list . push(this . notice list[I])
}
}
console.log(noticeNewList ,_this.noticeNewList)
}
用async和await
异步加载(选项){
等待this.getAllNotice()
wait this.getNowNotice()
},
以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。