我正在编写带有链接.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。
答案 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。我不知道打字稿所以如果我已经搞砸了打字稿的语法,你可以从我在这里展示的内容看到这个想法。