我有一個Angular Service我想用它來執行兩個$http
調用,並返回第二個結果。這裏的服務:
angular.module('myApp', [])
.service('farm', ['$http']);
function farm($http) {
this.saveFruit = function(fruit) {
return $http.get('http://example.com/get-token').success(function(token) {
return $http({
method: 'POST',
url: 'http://example.com/save-fruit',
headers: { 'X-CSRF-Token': token },
data: { fruit: fruit }
});
});
}
}
在這一點上,代碼工作正常。我能夠「保存一些水果」,它通過GET
爲自己獲取一個令牌,然後通過POST
發送數據,並且所有內容都保存在雲中,非常棒。
要調用這個服務,我用這樣的代碼:
var fruit = { name: 'Apple', color: 'red' };
farm.saveFruit(fruit).success(function(result) {
console.log(result);
});
然而,console.log()
總是打印出$http
GET的結果,而不是POST。
如何在致電saveFruit
時如何獲得$http
POST呼叫的結果?