从函数返回并使用链式http promise

时间:2016-08-17 19:42:53

标签: javascript angularjs typescript promise

我需要帮助理解HTTP promises链。

我想尝试以下方案:

request_depth_max

在我的其他服务中,我想使用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

我希望你能帮助我并告诉我应该使用哪些关键字而不是&#39; - &gt;&#39;我在上面的代码中使用过。 我应该使用public class Serv2 extends IServ2 { public UseHelpMePromise() { var scope = this; this.serv1.HelpMe() -> function(resultOfInnerHelpMePromise){ scope.doLogic(resultOfInnerHelpMePromise) } } } 还是应该.then

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

最后我应该使用HelpMe / .catch还是不使用它们?

1 个答案:

答案 0 :(得分: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);
        });
    }
}