Hi I am trying to implement Promise Chaining Using q-library in my angular project below are my 2 methods and the way they are chained.I have also posted method implementations to understand my problem. Now in pathUserDataFromAuthService
method I would like to access the Etag value that i have set in the first Promise i.e getUserDataFromAuthServer
using setEtag()
method , The problem here is getEtag()
method is called before the first promise data is resolved .
How would ensure that correct Etag value is coming up
Any help in this regard would be great
getUserDataFromAuthServer(user)
.then(pathUserDataFromAuthService(user))
and the method code is as below
getUserDataFromAuthServer = function(user){
var defer=$q.defer();
$http.get(autherizationURL+'/'+'api/users/'+user.username)
.then(function(response){
var ETag =response.headers().etag;
console.log("etag"+ETag)
setEtag(ETag)
console.log("Etag Set changed");
defer.resolve(response.data);
},function(error){
defer.reject(error.statusText);
});
return defer.promise;
};
var pathUserDataFromAuthService = function (user){
var defer=$q.defer();
var passwordtobesaved ={
"firstName": user.firstName,
"lastName": user.lastName
};
var tag = getEtag();
$http.put(autherizationURL+'/'+'api/users/'+user.username,passwordtobesaved,{
headers:{
"If-Match": tag
}
}).then(function(response){
defer.resolve(response.data);
},function(error){
defer.reject(error.statusText);
});
return defer.promise;
};