2013-12-15 136 views
2

就承諾而言,以下兩個函數之間有什麼區別?JavaScript承諾和函數返回差異

var service = { 
    someFunction: function() { 
     return $http.get('url').then(function (response) { 
      return response; 
     }); 
    }, 
    someFunction2: function() { 
     return $http.get('url'); 
    } 
}; 

回答

4

第二個返回一個承諾,以便調用函數(未顯示在您的代碼中)可以對其執行某些操作。

第一個做了完全相同的事情,但它也使用promise來定義一個函數,然後響應返回。該函數沒有(有效)沒有,因爲當HTTP響應到達時,它返回到調用函數(then),它不關心響應。

+0

?他們做的事情完全一樣 – Esailija

2

沒有區別 - 第一個例子中的身份函數是不需要的,但不會對外部造成任何可觀察的差異。