2013-12-15 177 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

没有区别 - 第一个例子中的身份函数是不需要的,但不会对外部造成任何可观察的差异。