I realize this is a very similar question to this one. But I'm still unclear on how to do it in my situation. Just need some help with a successful callback.
This is what works:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(log);
}
function log(response) {
logger.debug(response);
return response;
}
This is what I want to acplish:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(log(response, logMessage);
}
function log(response, logMessage) {
logger.debug(logMessage, response);
return response;
}
I realize this is a very similar question to this one. But I'm still unclear on how to do it in my situation. Just need some help with a successful callback.
This is what works:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(log);
}
function log(response) {
logger.debug(response);
return response;
}
This is what I want to acplish:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(log(response, logMessage);
}
function log(response, logMessage) {
logger.debug(logMessage, response);
return response;
}
Share
Improve this question
edited May 23, 2017 at 12:17
CommunityBot
11 silver badge
asked Sep 8, 2015 at 18:52
Richard.DavenportRichard.Davenport
1,5013 gold badges16 silver badges31 bronze badges
3 Answers
Reset to default 9You can use this:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(
function success(response) {
return log(response, logMessage);
}
);
}
Depending on your preference/requirements you could do a few things. I normally write promise callbacks like this, so you could do:
.then(function success(response){
return log(response, logMessage);
});
or, depending on how you feel about this way (i know some people don't like it, i try to avoid unless absoluley nessesary)
.then(log.bind(null, response, logMessage));
Do either of these work for you?
See if it can help you:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
var deferred = $q.defer();
return $http.post(GetStuff, { custId: accountNumber })
.success(function(response){
deferred.resolve(response);
log(response, logMessage);
}).error(function(){
deferred.reject();
})
return deferred.promise;
}