鍍金池/ 問答/HTML/ 為什么axios請求的數(shù)據(jù)總是在mounted之后才發(fā)送?放在created中也

為什么axios請求的數(shù)據(jù)總是在mounted之后才發(fā)送?放在created中也沒用,http請求總是在mounted之后嗎?

求大神。如題,如果按照生命周期,應該是createDays()構(gòu)造初始的模型存入dayList,this.getStatus()通過axios獲取數(shù)據(jù)更改dayList中的參數(shù),然后根據(jù)dayList初始化頁面,也就是按照alert 1,2,3,4的順序。但是事實是1,3,4,2,為什么???疑惑

data () {
    return {
      dayList:[]
    }
  },
created:function(){
    this.createDays();
    alert(1);
    this.getStatus();
    alert(3);
  },
mounted:function(){
    alert(4);
  },
methods: {
    createDays:function(){
    ...
    },
    getStatus:function(){
      //獲取狀態(tài)數(shù)據(jù)----------------------------
      this.$http.get(this.url).then(
        response =>{
          this.dayList=response.data.info;
          ...
          alert(2);
          this.setStatus();
        })
    },
    setStatus:function(){
    ...
    }
  }
回答
編輯回答
入她眼

你得考慮異步,并不是之后才發(fā)送請求。

2018年5月12日 15:22
編輯回答
空白格

大兄弟,數(shù)據(jù)請求是異步的,要考慮很多因素。

2018年7月16日 09:17
編輯回答
假灑脫

異步異步異步

2018年2月16日 23:50
編輯回答
孤慣

異步異步異步?

2018年1月13日 09:17
編輯回答
毀了心

執(zhí)行順序是1,2,3,4。
2最后才出來是因為你把它放在回調(diào)里了,而這又是一個異步請求。你把alert(2)放在外面試試。

如果你不太了解異步請求,可以看一下這里

你為什么想實現(xiàn)同步呢?同步請求會堵塞界面,后面需要執(zhí)行的程序全都卡住,必須要請求完成才能執(zhí)行后面的程序,請求如果花費的時間稍微久一點,這個界面基本就廢了。

強烈建議不要使用同步。

如果需要請求完成才能實現(xiàn)某些功能,或者展示某些界面,把這些寫在回調(diào)里,想要美觀一點可以加個loading動畫什么的

2017年8月25日 06:54