我现在对 Promise 有些困惑。
给定以下代码:
$scope.getData = function(user) {
return $http.post('/endpoint', "some post data", { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
.success(function (response) {
var myThing = { stuff: response.infoData };
localStorageService.set('myData', { stuff: response.infoData });
return myThing;
});
};
在成功回调函数中返回的myThing对象是:
- 作为$scope.getData方法的结果返回,还是
- 被忽略并丢失到无处?
据我所知:
- 因为$http.post是一个承诺,它异步解决,然后运行成功方法
- 当成功方法运行时,它返回myThing对象,但这并不能神奇地替换整个$http.post承诺本身
这正确吗?有什么我漏掉的东西吗?在成功方法中返回对象是否有益处,或者返回是多余的?(我非常清楚这段代码可以改进,但我正在试图找出为什么有人会写这样的代码,或者它是否完全是错误)