将参数传递给promisejs $ q中的promise成功回调

Ric*_*ort 3 javascript angularjs q

我知道这是这是一个非常类似的问题一个.但在我的情况下,我仍然不清楚如何做到这一点.只需要一些成功回调的帮助.

这是有效的:

function getStuff(accountNumber) {
    var logMessage = 'POST GetStuff';

    return $http.post(GetStuff, { custId: accountNumber })
        .then(log);
}

function log(response) {
    logger.debug(response);
    return response;
}
Run Code Online (Sandbox Code Playgroud)

这就是我想要完成的事情:

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;
}
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 8

你可以用这个:

function getStuff(accountNumber) {
    var logMessage = 'POST GetStuff';

    return $http.post(GetStuff, { custId: accountNumber })
        .then(
           function success(response) {
               return log(response, logMessage);
           }
        );
}
Run Code Online (Sandbox Code Playgroud)


Sha*_*son 5

根据您的偏好/要求,您可以做一些事情.我通常写这样的承诺回调,所以你可以这样做:

.then(function success(response){
  return log(response, logMessage);
});
Run Code Online (Sandbox Code Playgroud)

或者,取决于你对这种方式的感受(我知道有些人不喜欢它,我尽量避免,除非absoluley nessesary)

.then(log.bind(null, response, logMessage));
Run Code Online (Sandbox Code Playgroud)

这些都适合你吗?