2016-08-17 82 views
-1

我需要帮助理解HTTP承诺链。返回并使用链接http承诺功能

我想有以下情形:

public class Serv1 extends IServ1 { 

    public HelpMe() : ng.IHttpPromise<any> { 

      $http.post(something) -> function(somethingResult) { 

       // I want to return this promise from this method and use it outside 
       $http.get(somethingResult) 
     } 
    } 
} 

在我的其他服务,我想使用Serv1.HelpMe方法:

public class Serv2 extends IServ2 { 

    public UseHelpMePromise() { 
     var scope = this; 
     this.serv1.HelpMe() -> function(resultOfInnerHelpMePromise){  
      scope.doLogic(resultOfInnerHelpMePromise) 
     } 
    } 
} 

我希望你能帮助我,告诉我哪些关键字我应该使用上面代码中使用的' - >'。 我应该使用.then还是应该使用.success

此外,如果我想返回内部承诺(GET方法承诺),何时应该在HelpMe方法中放置返回语句?

最后我应该使用.catch/.error还是没有一个?

回答

1

你应该做的是这样的:

public class Serv1 extends IServ1 { 
    public HelpMe(): ng.IHttpPromise<any> { 
     return $http.post(something).then(somethingResult => { 
      return $http.get(somethingResult); 
     }); 
    } 
} 

public class Serv2 extends IServ2 { 
    public UseHelpMePromise() { 
     this.serv1.HelpMe().then(resultOfInnerHelpMePromise => { 
      this.doLogic(resultOfInnerHelpMePromise); 
     }); 
    } 
}