vue的异步操作,vue同步和异步的区别

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: