链接中的隐含管道解析和拒绝然后调用

时间:2016-02-23 23:21:28

标签: jquery typescript es6-promise

我正在编写带有链接.then调用的Typescript中的Promise代码,如下所示:

aFunc(originalT: T) {
    return new Promise((resolve:any, reject: any) => {
        this.otherFunc(originalT).then(
            newT => this.yetAnotherFunc(newT).then(
                resolve,
                reject),
            reject);
    });
}

我的问题是,既然我只是管道解析并拒绝通过,有没有办法编写这个函数而不明确地做它?

注意:我不能使用async / await。

1 个答案:

答案 0 :(得分:3)

回报内部承诺。这会将它们链接在一起,因此在内部承诺解决之前,原始返回的承诺将无法解决:

aFunc(originalT: T) {
    return this.otherFunc(originalT).then(function(newt) {
        return this.yetAnotherFunc(newT);
    });
}

创建承诺然后.then(resolve, reject)也是anti-pattern。你几乎总是可以只使用函数已经创建的promises并返回它们的一些推导,而不是像你一样创建一个新的promise。

P.S。我不知道打字稿所以如果我已经搞砸了打字稿的语法,你可以从我在这里展示的内容看到这个想法。