在链式 then 调用中隐式管道解析和拒绝

Implicitely pipe resolve and reject in chained then calls

我在 Typescript 中使用 Promises 编写了很多代码,其中链式 .then 调用看起来像这样:

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

我的问题是,因为我只是通过管道传递 resolve 和 reject,有没有办法在不显式执行的情况下编写这个函数?

注意:我无法使用 async/await。

只是 return 内部承诺。这会将它们链接在一起,因此原始的 returned 承诺在内部承诺解决之前不会解决:

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

创建承诺然后.then(resolve, reject)也是一个anti-pattern。你几乎总是可以只使用你的函数已经创建的承诺和 return 它们的一些派生,而不是像你正在做的那样创建一个新的承诺。

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