具有相关调用的角度服务

时间:2016-03-30 18:44:35

标签: angularjs

今天我正在进行一些实际上有两次通话的服务电话。 但是我无法在服务中使用它。我的代码需要像这样:

angular.module('module')
.service('NotificationManager',  function (TransactionService) {
// call get currentransactionid from TransactionService
TransactionService.GetPendingTransactionForUser().then(function(result){
// call isNewTransaction which needs the result from GetPendingTransactionForUser passed as a parameter
TransactionService.IsNewTransaction(result.id).then(function(result){
return result.IsNewTransaction
 }
}

然后在控制器中,我想返回此函数的结果(IsNewTransaction)。我该如何正确实现?目前,当我在控制器中单独进行服务调用时,它可以正常工作,但这不是必需的,因为需要从许多控制器调用此代码。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

添加两个return语句,服务将返回使用IsNewTransaction解决的承诺:

angular.module('module').service('NotificationManager', function (TransactionService) {
    return TransactionService.GetPendingTransactionForUser().then(function(result) {
        return TransactionService.IsNewTransaction(result.id).then(function(result) {
            return result.IsNewTransaction;
        });
    });
});

或者,不是像这样级联调用:

angular.module('module').service('NotificationManager', function (TransactionService) {
    return TransactionService.GetPendingTransactionForUser().then(function(result) {
        return TransactionService.IsNewTransaction(result.id);
    }).then(function(result) {
        return result.IsNewTransaction;
    });
});
相关问题