vue中return的用法理解


在做項目的時候有的時候項目緊急,所以只需要知道如何使用一下方法實現相應的功能,沒得停留下來研究理解為什么要這樣使用,所以今天趁不忙就寫一下自己對return的理解,一方面是加深自己的理解,另一方面也希望能幫助到需要的人!

我先拋出一個簡單的問題:return后面可以跟執行語句或者函數么?

答案:可以!

但是有一點,return不論是什么,都是直接返回,即使是語句或者函數也不會執行的!是函數就返回該函數!

下面從一個例子來加深對return用法的理解:

export function getTable() {
    return axios.get('xxxx’  
    ).then(function (res) {    
       return  res.data.result.info 
   }).catch(function () {
   })
}
在axios和ajax中經常會用到return,從上面的代碼可以看到有兩個return,每個return的作用都需要理解
首先第一個return后面跟的是axios配置,這個return就是將整個axios返回出來;第二個return是在axios請求成功后將響應數據返回出來,即第二個return就是將axios異步請求的數據返回出來。
這兩點都比較好理解,但是不知道大家有沒有想過為什么要這樣做?
說下我的理解:
函數中有ajax和axios調用的有異步和同步,是異步的話里面如果有return,在函數外層(函數是指getTable())調用的時候會取不到數據,除非換成同步。如果想異步取到數據,就需要在函數外層也加個return,相當於把ajax或者axios 整個配置返回出來,返回出來的數據格式是[object,promise],所以函數執行獲得的數據格式就是[object,promise],然后使用.then()的形式將里面返回的數據拿出來!
mounted() {
  getTable().then((res)=>{this.tableData = res}) //此出先調用getTable()拿到axios的數據,然后在.then()出來結果
}
此段代碼的目的是將axios異步請求的結果返回出來,因為是異步所以不能直接在axios里return數據,所以需要在axios外層也加個return,這樣就可以拿到了。

以上是個人理解!有不對的歡迎批評指正!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM