在 angularjs $q 中将参数传递给 promise 的成功回调
Passing parameters to promise's success callback in angularjs $q
我意识到这个问题与 one 非常相似。但是我仍然不清楚在我的情况下该怎么做。只需要一些成功回调的帮助。
这是有效的方法:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(log);
}
function log(response) {
logger.debug(response);
return response;
}
这就是我想要完成的:
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;
}
你可以使用这个:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(
function success(response) {
return log(response, logMessage);
}
);
}
根据您的 preference/requirements,您可以做一些事情。我通常这样写 promise 回调,所以你可以这样做:
.then(function success(response){
return log(response, logMessage);
});
或者,取决于你对这种方式的感受(我知道有些人不喜欢它,我尽量避免,除非绝对必要)
.then(log.bind(null, response, logMessage));
这些对你有用吗?
看看能不能帮到你:
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;
}
我意识到这个问题与 one 非常相似。但是我仍然不清楚在我的情况下该怎么做。只需要一些成功回调的帮助。
这是有效的方法:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(log);
}
function log(response) {
logger.debug(response);
return response;
}
这就是我想要完成的:
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;
}
你可以使用这个:
function getStuff(accountNumber) {
var logMessage = 'POST GetStuff';
return $http.post(GetStuff, { custId: accountNumber })
.then(
function success(response) {
return log(response, logMessage);
}
);
}
根据您的 preference/requirements,您可以做一些事情。我通常这样写 promise 回调,所以你可以这样做:
.then(function success(response){
return log(response, logMessage);
});
或者,取决于你对这种方式的感受(我知道有些人不喜欢它,我尽量避免,除非绝对必要)
.then(log.bind(null, response, logMessage));
这些对你有用吗?
看看能不能帮到你:
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;
}